【发布时间】:2020-05-21 17:22:19
【问题描述】:
初学者 Q. 学习 SQL,正在做一些在线培训练习,偶然发现了这个解决方案,可以从两个表中创建一个摘要:
SELECT salesman.name AS "Salesman",
customer.cust_name, customer.city
FROM salesman,customer
WHERE salesman.city=customer.city;
我觉得这很令人困惑,因为我希望在从两个不同的表中提取时执行 JOIN。我的 Udemy 培训从未同时给出多个表的 FROM 语句示例:)
这是进行基本 JOIN 的另一种方法吗?或者有什么原因 JOIN 做了一些不能做的事情?
谢谢
【问题讨论】:
-
在 ANSI-92 SQL 标准中,隐式连接被显式连接语法所取代。近 30 年后,ANSI-89 隐式语法仍然奇怪地被使用,并且更奇怪地被教授,但大多数从业者警告不要使用它。有很多很好的讨论here。
-
逗号只是写
JOIN的一种古老方式。最好忘记你曾经看过它。 -
这能回答你的问题吗? INNER JOIN ON vs WHERE clause
-
逗号是交叉连接,优先级低于关键字连接。 stackoverflow.com/a/25957600/3404097