选择销售给特定客户的产品

时间:2009-09-28 02:58:36

标签: sql mysql

我有两个表,productsold_recordproduct包含我的产品列表,而sold_record包含我的所有交易。如何选择客户A和客户B购买的不同产品列表?

2 个答案:

答案 0 :(得分:1)

如果您的sold_record表具有产品ID和客户ID,则查询将为:

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;

使用连接可能有一种更简单的方法,但这应该可行。

答案 1 :(得分:0)

我们假设表Product有一个主键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(当然,您也可以从该表中获取其他列,我们只是不知道这些列可能是什么; - )。