php - LEFT JOIN 还是只选择额外的表?

标签 php mysql join left-join

我想知道明确说 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/

相关文章:

php - 如何使用 Ajax、PHP 和 JQuery 检查多个输入复选框?

mysql - 如何在 mysql 中自连接多个值?

postgresql - 有没有办法让 "automatic"加入 postgresql?

php - 循环使用 PHP 和 MySQL 的动态链接

mysql - 你如何在 MySQL 中将回车附加到值?

php - 从表的单列中获取数据并将这些数据保存在每个变量中

PHP - 多个表行字段连接到单个表

php - mysql/php - 如何实现独特的 View 系统?

php - codeigniter 中的多次上传

php - 如何将 PDF (jsPdf) 发送到后端 (PHP - Zend 1)