SQL вывод из трех таблиц
У меня есть три таблицы:
orders(id,login,address)catalog(id,name,price)- Связующая таблица
id_order_id_goods(id, id_order,id_catalog)
На вход приходит логин пользователя (login из таблицы orders). Как мне вывести все заказы этого пользователя? То есть, берем id из таблицы orders, который соответствует данному логину, далее сравниваем этот id с id_order из таблицы id_order_id_goods, берем id_catalog, который соответствует id_order из данной таблицы и выводим все товары из таблицы catalog, где catalog.id = id_order_id_goods.id_catalog.
Как-то так, но я не понимаю, как это записать.
Ответы (1 шт):
Автор решения: Inventor
→ Ссылка
Вы можете сделать это так:
SELECT c.*
FROM catalog c
INNER JOIN id_order_id_goods og
ON og.id_catalog = c.id AND og.id_order=(
SELECT id FROM orders WHERE login='need_login'
);
Это вернёт вам все записи пользователя в catalog, у которого login='need_login'
Если в таблице orders несколько записей по 1 login то можете сделать так:
SELECT c.*
FROM catalog c
INNER JOIN id_order_id_goods og
ON og.id_catalog = c.id AND og.id_order IN (
SELECT id FROM orders WHERE login='need_login'
);