Mysql连接表,但只产生特定行的结果

Mysql连接表,但只产生特定行的结果,mysql,sql,join,Mysql,Sql,Join,三张表: 客户id客户、客户名称。。。 产品id\u pro,pro\u名称。。。 订单id\u cus,id\u pro 表订单是客户和产品之间的关系 问题是:如何获得只选择特定产品的客户身份 示例:产品A id_pro=100,希望所有客户只购买此产品A,而不是产品A和产品B。仅产品A id_pro=100 SELECT `id_cus` from `Orders` where `id_pro=100; 这给了我所有曾经购买过产品A和产品B、C的客户 对不起,不知道。看看 简单地说: SE

三张表: 客户id客户、客户名称。。。 产品id\u pro,pro\u名称。。。 订单id\u cus,id\u pro

表订单是客户和产品之间的关系

问题是:如何获得只选择特定产品的客户身份

示例:产品A id_pro=100,希望所有客户只购买此产品A,而不是产品A和产品B。仅产品A id_pro=100

SELECT `id_cus` from `Orders` where `id_pro=100;
这给了我所有曾经购买过产品A和产品B、C的客户

对不起,不知道。

看看

简单地说:

SELECT o.id_cus
FROM orders o
WHERE o.id_pro = 100
    AND NOT EXISTS (SELECT * from orders o2 where o2.id_cus = o.id_cus AND o2.id_pro != 100)

您可以为此使用聚合:

select o.id_cus
from orders o
group by o.id_cus
having min(o.id_pro) = max(o.id_pro) and min(o.id_pro) = 100;
也许这能帮你