我正在自学SQL查询。我的问题来自子查询集中的w3resource.com sql练习6。总结问题,我们需要一个查询,该查询显示巴黎服务客户的销售员的佣金。这是给出其列的两个表:
推销员(推销员编号,姓名,城市,佣金)
客户(客户编号,客户名称,城市,等级,销售人员编号)
下面是我编写的两个查询,它们以不同的方式实现了解决方案。我的问题是,是否有两个更“正确”的?在“正确”的基础上考虑性能,标准等。或者两者都一样吗?我问是因为我想在继续进行更复杂的查询时,出于性能/多功能性的原因,我应该坚持使用吗?谢谢
select commission from Salesman
where salesman_id IN
(select salesman_id from Customer
where city = 'Paris')
select commission from Salesman
join Customer on (Salesman.salesman_id = Customer.salesman_id)
where Customer.city = 'Paris'
他们俩都很好。
就样式而言,两者都有其优点,例如
它们可能会根据您的数据库生成不同的查询计划,但是与大多数代码一样,最好从编写代码的可读性和可维护性入手,并仅优化所需的位。这种事情不会有任何区别。