SQL-запрос для 3 таблиц - PullRequest
       2

SQL-запрос для 3 таблиц

1 голос
/ 17 ноября 2011

У меня есть 3 таблицы следующим образом

item{id, name, price}
customer{id, name, tel_no}
order{id, time, customer_id}
order_item{id, item_id, price, order_id}
process{id, order_item_id, status}

Мне нужно получить элементы order_items, которые не обрабатываются для конкретного клиента. Я попытался с помощью следующего запроса. Но это не помогает. Пожалуйста, поправьте меня.

SELECT * 
FROM order_item`
INNER JOIN `order` ON `order`.id = order_item.order_id
WHERE `order`.customer_id=1 AND NOT EXISTS (
SELECT * 
FROM process 
WHERE process.order_item_id=order_item.id  
) 

Я использую MySQL в качестве сервера

1 Ответ

1 голос
/ 17 ноября 2011
Select * 
from order_item OI
INNER JOIN ORDER O on O.ID=OI.Order_Id
LEFT JOIN Process P ON P.Order_item_ID = OI.Item_ID
where O.Customer_ID = 1 and P.ID is null

LEFT JOin предоставляет вам все ORDER_Items и только те записи с соответствующей записью процесса, поэтому P.ID будет нулевым, поэтому элемент не был обработан

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