为什么在SQL中使用联接以及何时使用?
如果我问了以下问题: 写一个SQL语句,找出那些为自己的工作任命销售人员并从公司获得佣金超过12%的客户名单 表: 顾客 推销员为什么在SQL中使用联接以及何时使用?,sql,Sql,如果我问了以下问题: 写一个SQL语句,找出那些为自己的工作任命销售人员并从公司获得佣金超过12%的客户名单 表: 顾客 推销员 salesman_id name city commission ----------- ---------- ---------- ---------- 5001 James Hoog New York 0.15 5002 Nail Knite Paris 0.13 5005
salesman_id name city commission
----------- ---------- ---------- ----------
5001 James Hoog New York 0.15
5002 Nail Knite Paris 0.13
5005 Pit Alex London 0.11
5006 Mc Lyon Paris 0.14
5003 Lauson Hen San Jose 0.12
5007 Paul Adam Rome 0.13
以下方法有什么不同吗?如果是,有什么不同?因为最终的结果是一样的
如果两者都相同,为什么要使用内部连接句?第一个解决方案对我来说更难
select customer.cust_name, salesman.name, salesman.commission
from customer, salesman
where salesman.commission > 0.12 and customer.salesman_id = salesman.salesman_id
-
非常感谢这个“更难”的解决方案是你不习惯的。现在世界上大多数地方都在使用内部联接,因此,如果您想编写其他程序员更易于阅读的代码,您应该使用内部联接。您不需要指定所需的数据库平台,但对于MS SQL Server,至少第一种形式隐式联接已被弃用。例如,请参见: 对我个人来说,显式连接更容易书写和阅读
此外,由于它是一种不推荐使用的语法,明智的做法是现在就习惯隐式联接,因为较新版本的SQL Server不支持较旧的语法。结果是相同的,因为查询基本相同,而差异纯粹是符号化的,其中表示联接类型(内部联接)在这种情况下,表之间存在的关系是明确的
最好使用明确的关系。。根据最常用的标准准则,sql raccomendation
内部联接是编写查询的正确方法。简单规则:千万不要在FROM
子句的中使用逗号。@GordonLinoff你能解释一下为什么吗,他的第一个例子有什么问题吗?@GordonLinoff是的,你能解释一下为什么吗。我在很多网站上都看到了这一点,SQL ManualsHere是我用来做一些练习和学习的网站,他们在没有连接的情况下查询多个表的方式:推荐使用SQL的网站
select customer.cust_name, salesman.name, salesman.commission
from customer, salesman
where salesman.commission > 0.12 and customer.salesman_id = salesman.salesman_id
select customer.cust_name, salesman.name, salesman.commission
from customer INNER JOIN
salesman
ON customer.salesman_id = salesman.salesman_id
where salesman.commission > 0.12