假设我有两个表Customers $,Orders $。我想知道,这两个结果(如下所示)都相同。因此,我可以使用其中任何一种还是第二种方法代替内部联接。
select Orders$.OrderDate,
Customers$.ContactName
from Orders$
inner join Customers$ on Orders$.CustomerID = Customers$.CustomerID;
select Orders$.OrderDate,
Customers$.ContactName
from Orders$,Customers$
where Orders$.CustomerID = Customers$.CustomerID;
但是当我从以下位置解决问题时- https://www.hackerrank.com/challenges/average-population-of-each-continent/problem
所以两者都可以正常工作,但是第二个却不如您在您的评论中所说的那样,两者都是一样的
select country.continent , round(avg(city.population -.5 , 0)) from country, city where country.code=city.countrycode group by country.continent;
select country.continent, round(avg(city.population - .5),0) from country inner join city on country.code=city.countrycode group by country.continent
答案 0 :(得分:3)
这两个查询是等效的。尽管两者在技术上都是正确的,但现代语法鼓励使用显式连接,因此您应该坚持使用第一个变体。