使用Join查找3个表之间的特定值

时间:2015-02-11 17:02:41

标签: php mysql sql join

有没有更好的方法来写这个呢?

Select * 
From PokerClasses, TendonClasses, CornhillClasses Join ClassesCodes Using (ClassCode) 
Where ClassName = 'Zumba;

1 个答案:

答案 0 :(得分:0)

您需要将前两个表连接在一起,然后使用从前两个表创建的新表将第三个表连接起来。

SELECT t1.col, t3.col FROM table1 join table2 ON table1.primarykey = table2.foreignkey
                              join table3 ON table2.primarykey = table3.foreignkey

了解详情:http://javarevisited.blogspot.com/2012/11/how-to-join-three-tables-in-sql-query-mysql-sqlserver.html


我把这个快速地拼凑起来以便更多地解释这个概念,但是你想要更改这些字段以便它们适合你的数据库。

SELECT TC.id, TC.day, PC.id, PC.day
FROM tendonclasses TC
JOIN classescodes CC ON TC.class = CC.classID
JOIN pokerclasses PC ON PC.class = CC.classID
WHERE CC.ClassName = 'Zumba';

^如果您在运行此字段时想要获取所有字段,或者将*与要从各个表中检索的特定字段名称交换出来,则可以使用SELECT *。然后你可以从那里回应结果。如果您不打算使用结果中的所有字段,那么使用SELECT *不是一个好主意,而只是您需要的字段。