为什么在SQL中使用联接以及何时使用?

为什么在SQL中使用联接以及何时使用?,sql,Sql,如果我问了以下问题: 写一个SQL语句,找出那些为自己的工作任命销售人员并从公司获得佣金超过12%的客户名单 表: 顾客 推销员 salesman_id name city commission ----------- ---------- ---------- ---------- 5001 James Hoog New York 0.15 5002 Nail Knite Paris 0.13 5005

如果我问了以下问题:

写一个SQL语句,找出那些为自己的工作任命销售人员并从公司获得佣金超过12%的客户名单

表: 顾客

推销员

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