我有两个表,product
和sold_record
。 product
包含我的产品列表,而sold_record
包含我的所有交易。如何选择客户A和客户B购买的不同产品列表?
答案 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(当然,您也可以从该表中获取其他列,我们只是不知道这些列可能是什么; - )。