Задать вопрос
@WinStar

Как правильно создать запрос на выборку страны загрузки и выгрузки?

В БД есть 2 таблицы.
1 таблица. С названиями всех стран countries ((PK)id, country_name)
2 таблица. С заказами на перевозку orderdetails ((PK)ID, ... , (FK)load_country_id, (FK)unload_country_id) в которой хранится id страны загрузки и выгрузки.

Как правильно создать запрос SELECT, так что бы вывести названия страны загрузки и выгрузки?

Усложненный вариант :
В БД есть 3 таблицы.
1 таблица. С названиями всех стран countries ((PK)id, country_name)
2 таблица. С названиями всех городов cities ((PK)id, (FK)country_id, city_name) которая связана с таблицей всех стран.
3 таблица. С заказами на перевозку orderdetails ((PK)id, ... , (FK)load_country_id, (FK)unload_country_id, (FK)load_city_id, (FK)unload_city_id) в которой хранится id страны и id города загрузки и выгрузки.

Как правильно создать запрос SELECT, так что бы вывести названия страны и города загрузки и выгрузки?
  • Вопрос задан
  • 302 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@Inv3go
SELECT o.id, c.country_name as load_country,c1.country_name as unload_country FROM `orderdetails` as o LEFT JOIN `countries` as  c ON o.load_country_id = c.id
LEFT JOIN `countries`  as c1 ON o.unload_country_id = c1.id;


SELECT o.id, c.country_name as load_country,c1.country_name as unload_county,ci.city_name as load_city,ci1.city_name AS unload_city FROM `orderdetails` as o 
LEFT JOIN `countries` as  c ON o.load_country_id = c.id
LEFT JOIN `countries`  as c1 ON o.unload_country_id = c1.id
LEFT JOIN `cities` as ci ON o.load_city_id = ci.id
LEFT JOIN `cities` as ci1 ON o.unload_city_id = ci1.id;
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если хотите, чтобы сделали за вас - идите на Фрилансим.
Если что-то не получается, пишите что уже сделали и в чём затык.
Ответ написан
Комментировать
@WinStar Автор вопроса
Вот что сделал:
Запрос возвращает страну и город загрузки
SELECT countries.country_name AS "Страна загрузки", cities.full_name_nd AS "Город загрузки" 
FROM orderdetails INNER JOIN countries INNER JOIN cities 
WHERE orderdetails.load_country_id = countries.id AND orderdetails.load_city_id = cities.id


Запрос возвращает страну и город выгрузки
SELECT countries.country_name AS "Страна выгрузки", cities.full_name_nd AS "Город выгрузки" 
FROM orderdetails INNER JOIN countries INNER JOIN cities 
WHERE orderdetails.unload_country_id = countries.id AND orderdetails.unload_city_id = cities.id


Затык в том, что не знаю, как объединить эти два запроса в один
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы