Можно ли считать эти два запроса одинаковыми или нет? - PullRequest
0 голосов
/ 13 апреля 2019

Допустим, у меня есть две таблицы 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

1 Ответ

3 голосов
/ 13 апреля 2019

Два запроса эквивалентны. Хотя оба они технически верны, современный синтаксис поощряет использование явных объединений, и вам следует придерживаться первого варианта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...