mysql where distinct,mysql选择distinct where子句

I have this table, and I want to select all distinct user_id values where there is both an event='AAAAAAAAAA' and event ='XXXXXXXXXX' (i.e. only result should be user_id=123456789)

unique_row_id user_id event event_timestamp

----------------------------------------------------------------

0 123456789 AAAAAAAAAA 2010-01-20 15:00:00

1 123456789 abcdefghij 2010-01-20 15:00:05

2 123456789 XXXXXXXXXX 2010-01-20 15:00:15

3 987654321 AAAAAAAAAA 2010-01-20 16:00:00

4 987654321 abcdefghij 2010-01-20 16:00:05

5 987654321 abcdefghij 2010-01-20 16:00:15

6 111111111 XXXXXXXXXX 2010-01-20 16:01:00

7 111111111 XXXXXXXXXX 2010-01-20 16:01:05

8 111111111 XXXXXXXXXX 2010-01-20 16:01:15

I've tried both:

SELECT distinct user_id from mydata where event='AAAAAAAAAA' and event='XXXXXXXXXX'

which gives me an empty result set, and

SELECT distinct user_id from mydata where event='AAAAAAAAAA' or event='XXXXXXXXXX'

which gives me everything. Any suggestions - I'm guessing I need to go down the 'join' road here do I?

解决方案

Try this:

select user_id from mydata where event='AAAAAAAAAAA'

union

select user_id from mydata where event='XXXXXXXXXXX';

This will select both lists (users w/ AAA, users w/ XXX), and then merge them together, removing duplicate rows.

Hope that helps!

Thanks,

Joe

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值