如何解决MySQL:有效查询[重复项]
| 这个问题已经在这里有了答案:解决方法
正如OMG Ponies所说,没有直接“调用表”之类的东西。在SQL中,可以通过三种方式组合多个表:
外部联接,您可以在其中匹配表的行,但允许其中一个表没有匹配的行的情况
笛卡尔积,其中第一张表的每一行与第二张表的每一行合并(因此\“ product \”)
内部联接,两个表中的行都匹配
碰巧的是,按照我列出的顺序,您的三个示例每个都有一个。没有一个比另一个更“有效”。他们返回非常不同的结果!
之所以会出现混乱,是因为有两种不同的语法。您的示例2使用的是较旧的SQL89语法,其中表名用逗号分隔,并且除非WHERE子句中的某些内容表示将它们联接,否则组合为笛卡尔乘积。
, 即使右侧表中没有匹配的元素,左侧的外部联接也将为您提供左侧表中的所有元素。逗号运算符是INNER JOIN别名,它表示您只希望在某些字段上匹配的元素(由于要发布的查询,因为您在表之间没有限制因素,因此将得到表的笛卡尔积)。
该查询将仅获取表1和表2中字段相同的元组
Table1 LEFT OUTER JOIN Table2 ON(Table1.field = Table2.field)
此查询将以笛卡尔积形式获取所有可能的元组
Table1,Table2
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。