我想知道明确说 LEFT JOIN 和简单地将值相互连接之间的速度。所以在这里,我们有:
SELECT example.id FROM example
LEFT JOIN finals ON example.id = finals.account_id";
对比
SELECT example.id, finals.account_id
FROM example, finals
WHERE example.id = finals.account_id
我几乎可以肯定第一个更快,但我找不到建议的答案。 (实际上我什至不确定如何“调用”第二个,我只是将其称为软连接)
最佳答案
这些查询之间存在语义差异。
第一个连接是 OUTER JOIN,它包括左表中的所有行。第二种是 INNER JOIN,不会包含匹配失败的行。
如果您编写的是 JOIN
而不是 LEFT JOIN
,则这两个查询将是相同的,除了第一种语法是首选的可读性和可维护性。
I'm not actually even sure what to 'call' the second one, I just call it a soft join)
第二种语法使用 MySQL 所谓的“逗号运算符”。它有时被称为隐式连接。它也称为 ANSI-89 连接。
关于php - LEFT JOIN 还是只选择额外的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7923189/