Использование sql join возвращает данные, но не другой запрос - PullRequest
1 голос
/ 30 марта 2019

Напишите запрос в SQL для отображения названия страны, города и отделов, которые там работают. Как я писал запрос на вопрос выше, используя схему HR (схема доступна здесь ). 1-й запрос не дал результата

1st Query:
select country_name,city, department_name 
from HR.COUNTRIES c, HR.Locations l, HR.DEpartments d
where c.COUNTRY_ID = l.country_id
and d.DEPARTMENT_ID=l.location_id;

Второй запрос вернул результат.

select country_name,city,department_name 
from HR.COUNTRIES c join HR.LOCATIONS l on c.COUNTRY_ID =l.country_id
join HR.DEPARTMENTS d on l.location_id=d.location_id;

Почему 1-й запрос не работает? Спасибо за ваше время.

1 Ответ

0 голосов
/ 30 марта 2019

Ваше последнее условие неверно.У department есть location_id, который вы должны использовать, чтобы присоединиться к location:

SELECY country_name, city, department_name 
FROM   hr.countries c, hr.Locations l, hr.departments d
WHERE  c.country_id = l.country_id AND
       d.location_id = l.location_id;
-- Here--^

Обратите внимание, кстати, что неявные объединения (имеющие несколько таблиц в предложении from) являютсяустарела, и рекомендуется использовать явные предложения join:

SELECY country_name, city, department_name 
FROM   hr.countries c
JOIN   hr.Locations l ON c.country_id = l.country_id 
JOIN   hr.departments d ON d.location_id = l.location_id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...