如何从SQL中的三个表中检索数据

时间:2016-03-23 11:55:07

标签: mysql sql

我有这张桌子

table1                    table2                          table3
---------------          ----------------------------          ---------------------
NO.    courses           NO.   id        courses    grade          NO.       courses
---------------          -----------------------------         ---------------------
1      CHEM 101          1    2255      CHEM 101    A+             2         English    
2      ENGL 101          2    2255      English     A
3      MATH 101     

我如何编写SQL查询以通过以前表中的id检索数据,以便给我这样的表,其中它们之间的关系为NO。

----------------------------------------
course     grade     equal of my courses
----------------------------------------
CHEM 101   A+            null
ENGL 101   A             English   
MATH 101   null          null

2 个答案:

答案 0 :(得分:2)

你需要在桌面上使用PK和FK将它们连接在一起,否则它就是你的例子中的一个crapshoot。

答案 1 :(得分:1)

您应该使用LEFT JOIN。我假设NO是一个维持所有表之间关系的列名

SELECT t1.courses,t2.grade,t3.courses AS 'equal of my courses'
FROM table1 t1
LEFT JOIN table2 t2
ON t1.NO = t2.NO
LEFT JOIN table3 t3
ON t2.NO = t3.NO;