【发布时间】:2020-09-08 21:04:25
【问题描述】:
我有 2 个表:订单和客户。订单有一个来自客户的外键:
我可以通过两种不同的方式加入他们:
第一种方式
Select *
from [Order]
join Customer
on [Order].Customer_id = Customer.id;
第二种方式
Select *
from [Order],Customer
where [Order].Customer_id = Customer.id;
这 2 个查询返回相同的结果集,这导致我提出相关问题:
- 这两个查询哪个更好?
- 它们之间在时间执行方面有区别吗?
- 为什么我搜索连接示例时都使用第一种方式?
- 我在大学学过第二种查询——用错了吗?
【问题讨论】:
-
那么您的第一个查询称为显式联接,而您的第二个查询称为隐式联接。您应该始终使用显式连接以获得最佳实践。
-
请use text, not images/links, for text--including tables & ERDs。仅将图像用于无法表达为文本或增强文本的内容。在图片中包含图例/键和说明。
-
这是一个常见问题解答。在考虑发布之前,请阅读您的教科书和/或手册和谷歌任何错误消息或您的问题/问题/目标的许多清晰、简洁和精确的措辞,带有和不带有您的特定字符串/名称和站点:stackoverflow.com 和标签;阅读许多答案。如果您发布问题,请使用一个短语作为标题。反映你的研究。请参阅How to Ask 和投票箭头鼠标悬停文本。
-
第一个比第二个好。
-
@philipxy 好的,好的,对不起,是的,它对我有很大帮助。