首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表间连接

问表间连接
EN

Stack Overflow用户
提问于 2020-06-15 14:02:23
回答 3查看 49关注 0票数 0

我想知道在两个表(或更多表)之间创建连接的最佳方法是什么。我看到了两种不同的方法。

在下一个例子中,我有两个表。Table1拥有customerId (key)和customerName。Table2有customerId (key)和CustomerPhone

table1:

代码语言:javascript
复制
 customerId | customerName|  
============+=============+
 1          |  Josh       |  
 2          |  Nadia      |   

table2:

代码语言:javascript
复制
 customerId | customerPhone|  
============+==============+
 1          |  123         |  
 2          |  456         |   

哪个查询是最好的,为什么:

代码语言:javascript
复制
SELECT Table1.customerId, Table2.customerPhone  
FROM   Table1, Table2  
WHERE  Table1.customerId = Table2.customerId  

Query2:

代码语言:javascript
复制
 SELECT Table1.customerId, Table2.customerPhone  
 FROM   Table1   
 Inner Join  Table2 ON Table1.customerId = Table2.customerId   
EN

回答 3

Stack Overflow用户

发布于 2020-06-15 14:08:44

第二种选择比较普遍,被认为是正确的选择,但是他们都在做同样的事情。

票数 2
EN

Stack Overflow用户

发布于 2020-06-15 14:09:44

第一个查询首先进行交叉连接,然后减少结果以适应where cflause。

第二个通过检查ON子句ist中的条件是否满足来匹配表。

两个人都这么做,但第一个是斯洛

票数 1
EN

Stack Overflow用户

发布于 2020-06-15 14:12:52

第一个查询是使用旧语法(SQL89)编写的:

代码语言:javascript
复制
SELECT Table1.customerId, Table2.customerPhone  
FROM   Table1, Table2  
WHERE  Table1.customerId = Table2.customerId  

第二个查询是用现代语法(SQL-92)编写的:

代码语言:javascript
复制
SELECT Table1.customerId, Table2.customerPhone  
FROM   Table1   
Inner Join  Table2 ON Table1.customerId = Table2.customerId   

它们是等价物。使用SQL-92。使用SQL-92!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62389833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档