2016-04-18 47 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 **。 –