ホームページ >データベース >mysql チュートリアル >MySQL で複数のテーブルを結合して階層データとリレーショナル データを取得する方法
学生テーブル、コーステーブル、およびブリッジテーブルの結合
学生の名前を取得し、彼らが学習したコースに応じて、Student、Course、Bridge の 3 つのテーブルを結合できます。 Bridge テーブルは、列 sid と cid を通じて学生とコース間の関係をそれぞれ確立します。
わかりやすくするために 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;
例結果:
Student | Course |
---|---|
Ahmed | Physic |
Ahmed | Maths |
Ahmed | Computer |
Ahmed | Chemistry |
Ali | Physic |
Ali | Maths |
John | Computer |
John | Chemistry |
King | Physic |
King | Maths |
階層のための Employee テーブルと Manage テーブルの結合
マネージャとスタッフの階層構造を取得するには、Employee テーブルと Manage テーブルを結合します。それぞれ列 id と eid を使用するテーブル。これに対するクエリは次のとおりです:
SELECT e1.name AS Manager, e2.name AS Staff FROM Employee e1 INNER JOIN Manage m ON e1.id = m.mid INNER JOIN Employee e2 ON m.eid = e2.id;
結果の例:
Manager | Staff |
---|---|
Ali | King |
Ali | Mak |
Mak | Sam |
Sam | Jon |
以上がMySQL で複数のテーブルを結合して階層データとリレーショナル データを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。