запрос в таблицу где используется два разных id этой таблицы
делаем интернет магазин, необходимо сделать вывод заказав (таблица orders), в заказе есть продавец и покупатель их идентификаторы хранятся в одной таблице (user), делаю запрос (пример под вопросом) и не чего не выводит, хотя если делать по отдельности по каждой связки, то выводиться нормально, не подскажите как одним запросом вывести и покупателя и продавца по заказу?
PS: Идентификаторы по каждой паре разные, т.е. id продавца и покупателя
SELECT *
FROM orders, user
WHERE user.id = client_id
AND user.id = seller_id
Ответы (1 шт):
очевидно, user.id одновременно не может быть равен и client_id и seller_id до тех пор пока продавец сам у себя не купит товар.
Хоть у вас используется одна таблица users, но фактически вы выбираете две различных сущности, поэтому следует присоединять таблицу два раза.
Вероятно, это будет выглядеть как from orders as o, users as cu, users as su, но чаще все же используют синтаксис джойнов
SELECT *
FROM orders AS o
INNER JOIN users as su ON su.id = seller_id
INNER JOIN users as cu ON cu.id = client_id
Можете также использовать подзапросы, а-ля
SELECT o.*
, (select name from users where id = seller_id) as seller
, (...) as client
зы: имхо не стоит начинать изучение программирования с создания инет магазинов, а то кто-нибудь деньги потеряет в итоге.