【问题标题】:Selecting products sold to a given set of customers选择出售给给定客户的产品
【发布时间】:2009-09-28 02:58:36
【问题描述】:

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

【问题讨论】:

  • “你的地段”是什么意思?我不是以英语为母语的人。

标签: sql mysql


【解决方案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;

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-11
      • 1970-01-01
      相关资源
      最近更新 更多