MySQLを使用して3つのテーブルを結合する 質問する

MySQLを使用して3つのテーブルを結合する 質問する

3つのテーブルがあります

**Student Table**
-------------
id    name
-------------
1     ali
2     ahmed
3     john
4     king

**Course Table**
-------------
id    name
-------------
1     physic
2     maths
3     computer
4     chemistry

**Bridge**
-------------
sid    cid
-------------
1     1
1     2
1     3
1     4
2     1
2     2
3     3
3     4
4     1
4     2

学生の名前と、その学生が受講したコース名を次のように表示します。

**Result**
---------------------------
Student        Course
---------------------------
ahmed         physic
ahmed         maths
ahmed         computer
ahmed         chemistry
ali           physic
ali           maths
john          computer
john          chemistry
king          physic
king          maths

私は次のクエリを構築します

select s.name as Student, c.name as Course from student s, course c join bridge b on c.id = b.cid order by s.name

しかし、必要な結果は返されません...

では、誰がマネージャーであるかを知りたい場合、正規化された形式は次のようになります。

**employee**
-------------------
id        name
-------------------
1         ali
2         king
3         mak
4         sam
5         jon

**manage**
--------------
mid      eid
--------------
1         2
1         3
3         4
4         5

そして、次のような結果を得たいと考えています。

**result**
--------------------
Manager      Staff
--------------------
ali          king
ali          mak
mak          sam
sam          jon

ベストアンサー1

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 

おすすめ記事