mysql - 仅显示具有两种类型记录的客户并且仅显示这些记录

标签 mysql sql

如何在 MySQL 中执行以下操作 - 我有一个包含客户订单的数据库,我想仅显示两种类型订单的客户记录,并且仅显示这两种类型的订单。

示例 -

  Orders:
    'Customer Id'   'Product'
    0001            Widget 1
    0001            Widget 2
    0001            Widget 3
    0002            Widget 2
    0002            Widget 3
    0003            Widget 1
    0004            Widget 1
    0004            Widget 3
    0004            Widget 4
    0004            Widget 5

我只想显示已订购小部件 1 和小部件 3 的客户,并且仅显示这些订单

期望的结果 -

  Orders:
    'Customer Id'   'Product'
    0001            Widget 1
    0001            Widget 3
    0004            Widget 1
    0004            Widget 3

最佳答案

这个怎么样:

SELECT custid, product FROM transactions WHERE custid IN 
(SELECT custid
FROM transactions
WHERE product in ('w1', 'w3')
GROUP BY custid
HAVING COUNT(DISTINCT product) = 2) 
and product IN('w1', 'w3');

关于mysql - 仅显示具有两种类型记录的客户并且仅显示这些记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51086112/

相关文章:

java - 如果有除零以外的值,如何输入新字符串

mysql - 如何连续监控 mysql 数据库表中的新条目,并在发现新条目后立即使用 cron 作业触发批处理文件

php - 插入外键正确的sql执行

SQL 检查列是否包含特定值

sql - MySQL 在特定时间间隔查询行

php - 查询列中的多个值

sql - 按查找顺序递归查询排序

返回唯一关联的 MySQL 语句

sql - 如何根据名字、姓氏和城市创建电子邮件列表?

mysql - 如何在mysql查询中消除一个数字的前两位数字以及如何获取后6位数字?