对 MySQL 中的 2 个以上的表执行 INNER JOIN

Perform an INNER JOIN with more than 2 tables in MySQL

我最近才了解到 SQL INNER JOIN 我想将它应用到一个项目中所以基本上我有三个表

现在我只是想知道我是否可以 return 使用 3 个表中的 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

旁注:

  • 您没有显示您的实际架构,因此这使用了您尝试中描述的连接条件;你可能需要回顾一下

  • table 别名使查询更短,更易于阅读

  • SELECT * 通常不是好的做法;相反,我建议在 SELECT 子句中枚举您想要的列,并适当地别名冲突的列名称(如果有的话)(这里,所有三个 table 都有一个名为 id 的列,它会在结果集中造成歧义)