2009-09-28 2 views
1

У меня есть две таблицы, product и sold_record. product содержит мой список продуктов, а sold_record содержит все мои транзакции. Как я могу выбрать отдельный список продуктов, которые покупают как клиент A, так и клиент B?Выбор продуктов, проданных данному комплексу клиентов

+0

Что означает «ваши лоты»? Я не являюсь носителем английского языка. – lovespring

ответ

1

Если таблица sold_record имеет идентификатор продукта и идентификатор клиента, то запрос будет:

select distinct s1.product_id 
from sold_record as s1, sold_record as s2 
where s1.customer_id = "Customer A" 
    and s2.customer_id = "Customer B" 
    and s1.product_id = s2.product_id; 

Там может быть более простой способ сделать это с помощью объединения, но это должно работать. предположим, что таблица Product

0

Давайте есть первичный ключ ProdID, и таблица Sold внешнего ключа в Product одним и тем же именем, а также Customer поле (вероятно, еще один внешний ключ в третью таблицу Customer, но так как вы говорите, должно быть только две таблицы мы будем использовать строку, которая является именем клиента, вместо этого). Тогда:

Select DISTINCT Product.ProdID 
From Product 
Inner Join Sold SA On (Product.ProdID=SA.ProdID 
         AND SA.Customer='A') 
Inner Join Sold SB On (Product.ProdID=SB.ProdID 
         AND SB.Customer='B') 

даст вам PRODID в вопросе (конечно, вы можете получить другие столбцы из этой таблицы, мы тоже просто понятия не имею, что может быть эти столбцы ;-).

+0

спасибо! Мартелли – lovespring

Смежные вопросы