sql语句-既包含又包含

同事最近做项目遇到了一个sql语句的问题,找我一起讨论解决,需要查询的信息虽然比较复杂,但还是可以简化成一个问题,表结构:
id type
1 a
1 b
1 c
1 d
2 a
3 g
4 b

sql查找既有a又有b的id

结果
1

上述SQL语句:
SELECT
a.id
FROM a
WHERE a.type IN (‘a’,‘b’)
GROUP BY a.id
HAVING COUNT(a.id) = 2

我们的需求最终SQL语句:
SELECT a.user_id
FROM (
SELECT
d.user_id ,
d.v_id
FROM dxw_voucher_grant_base d
LEFT JOIN dxw_voucher_base e ON e.id = d.v_id
GROUP BY d.user_id , d.v_id
ORDER BY d.user_id
) a
WHERE a.v_id IN (SELECT id FROM dxw_voucher_base WHERE is_ovip = 1)
GROUP BY a.user_id
HAVING COUNT(a.user_id) = (SELECT COUNT(1) FROM dxw_voucher_base WHERE is_ovip = 1)

多做总结。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值