[英]Perform an INNER JOIN with more than 2 tables in MySQL
我最近才了解到 SQL INNER JOIN
,我想将它应用到一个项目上,所以基本上我有三个表
现在我只是想知道我是否可以同时使用三个表的INNER JOIN
一次返回三个表的结果,还是只能使用 2 个表?
如果可以使用超过 2 个表的INNER JOIN
,请指导我如何操作,如果没有,请告诉我如何以任何其他可能的方式进行操作。
现在这是我目前的查询,它不能按预期工作:
SELECT *
FROM payers
INNER JOIN discounts AND items
ON payers.id = discounts.id AND ON payers.id = items.id;
你想要两个连接。 语法是:
SELECT *
FROM payers p
INNER JOIN discounts d ON d.id = p.id
INNER JOIN items i ON i.id = p.id
旁注:
您没有显示您的实际架构,因此这使用了您尝试中描述的连接条件; 您可能需要查看
表别名使查询更短且更易于阅读
SELECT *
通常不是好的做法; 相反,我建议在SELECT
子句中枚举您想要的列,并适当地为冲突的列名(如果有)进行别名(这里,所有三个表都有一个名为id
的列,这会导致结果集中的歧义)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.