我想知道在两个表(或更多表)之间创建连接的最佳方法是什么。我看到了两种不同的方法。
在下一个例子中,我有两个表。Table1拥有customerId (key)和customerName。Table2有customerId (key)和CustomerPhone
table1:
customerId | customerName|
============+=============+
1 | Josh |
2 | Nadia | table2:
customerId | customerPhone|
============+==============+
1 | 123 |
2 | 456 | 哪个查询是最好的,为什么:
SELECT Table1.customerId, Table2.customerPhone
FROM Table1, Table2
WHERE Table1.customerId = Table2.customerId Query2:
SELECT Table1.customerId, Table2.customerPhone
FROM Table1
Inner Join Table2 ON Table1.customerId = Table2.customerId 发布于 2020-06-15 14:08:44
第二种选择比较普遍,被认为是正确的选择,但是他们都在做同样的事情。
发布于 2020-06-15 14:09:44
第一个查询首先进行交叉连接,然后减少结果以适应where cflause。
第二个通过检查ON子句ist中的条件是否满足来匹配表。
两个人都这么做,但第一个是斯洛
发布于 2020-06-15 14:12:52
第一个查询是使用旧语法(SQL89)编写的:
SELECT Table1.customerId, Table2.customerPhone
FROM Table1, Table2
WHERE Table1.customerId = Table2.customerId 第二个查询是用现代语法(SQL-92)编写的:
SELECT Table1.customerId, Table2.customerPhone
FROM Table1
Inner Join Table2 ON Table1.customerId = Table2.customerId 它们是等价物。使用SQL-92。使用SQL-92!
https://stackoverflow.com/questions/62389833
复制相似问题