ホームページ > データベース > mysql チュートリアル > MySQL で複数のテーブルを効率的に結合するにはどうすればよいですか?

MySQL で複数のテーブルを効率的に結合するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-20 14:47:16
オリジナル
677 人が閲覧しました

How to Efficiently Join Multiple Tables in MySQL?

MySQL を使用した複数のテーブルの結合: 総合ガイド

データベースを管理する場合、多くの場合、複数のテーブルからデータを取得することが必要になります。 MySQL には、共通フィールドに基づいて異なるテーブルのデータを結合できる強力な JOIN 演算子が用意されています。

MySQL で 3 つのテーブルを結合する

この例では、目標は次のとおりです。 Student、Course、Bridge の 3 つのテーブルから、学生の名前とその学生が学習したコースを取得します。 Bridge テーブルは仲介者として機能し、学生をコースにリンクします。

INNER JOIN の使用

これを実現するには、Student からの行と一致する INNER JOIN 構文を使用します。ブリッジの値に基づくコース表とtable:

SELECT s.name AS Student, c.name AS Course
FROM student s
INNER JOIN bridge b ON s.id = b.sid
INNER JOIN course c ON b.cid = c.id
ORDER BY s.name;
ログイン後にコピー

正規化形式: 管理関係の検索

2 番目の例では、従業員から誰が誰を管理するかを決定し、テーブルを管理します。

SQL JOIN の使用構文

この情報を正規化された形式で取得するには:

SELECT e1.name AS Manager, e2.name AS Staff
FROM employee e1
JOIN manage m ON e1.id = m.mid
JOIN employee e2 ON m.eid = e2.id;
ログイン後にコピー

明確にするための ANSI 構文

ANSI 構文の使用をお勧めします。より明確に、読みやすくするには:

SELECT s.name AS Student, c.name AS Course
FROM student s
INNER JOIN bridge b ON s.id = b.sid
INNER JOIN course c ON b.cid = c.id
ORDER BY s.name;

SELECT e1.name AS Manager, e2.name AS Staff
FROM employee e1
JOIN manage m ON e1.id = m.mid
JOIN employee e2 ON m.eid = e2.id;
ログイン後にコピー

以上がMySQL で複数のテーブルを効率的に結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート