2016-04-18 48 views
1

我有三個不同的表我試圖從中獲取信息。相關的方式不同。我試圖找到一個Join語句,這個語句允許我比使用現在的兩個查詢更好地提取信息。MySQL加入多連接查詢

這裏是我有什麼

SELECT * FROM reports LEFT JOIN students USING (sID) 

這使我能夠正確地合併這兩個表。但是 - 報表中有一行名爲pID。我有另一個名爲test的表,它還有一個匹配的pid行以及其他數據。我正在嘗試訪問該表中的數據。是否有可能以這種方式加入三張桌子?不僅從SID,但將PID獲取數據以及

+1

標記問題時應該小心。加入USING表明它可能是mysql或oracle。這在sql server中是無效的語法。 –

+0

是的,可以加入3(或一千)表 – Strawberry

回答

3

你可以做以下

SELECT * 
FROM reports 
LEFT JOIN students USING (sID) 
LEFT JOIN table3 USING (pID) 

哪裏table3是你的表的名稱。

1

嗨羅伯特是的,它是可行的。您可以按照下面給出的三個表格,報告,學生和測試來進行查詢。

SELECT * 
FROM `reports` 
LEFT JOIN `students` ON `students.sid=reports.sid` 
LEFT JOIN `test` ON `reports.pid=tests.pid` 
+0

使用'(反)而不是'(tic)列和表名稱。即使切換,此子句也會失敗。 – xQbert

+0

謝謝你。 – Fil

+0

LEFT JOIN'students' ** ON ** not ** WHERE **。 –