J'ai cette table, et je veux sélectionner toutes les valeurs user_id distinctes où il y a un événement = 'AAAAAAAAAA' et event = 'XXXXXXXXXX' (ie seul résultat devrait être user_id = 123456789)mysql select distinct où clause
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
J'ai essayé à la fois:
SELECT distinct user_id from mydata where event='AAAAAAAAAA' and event='XXXXXXXXXX'
qui me donne un jeu de résultats vide et
SELECT distinct user_id from mydata where event='AAAAAAAAAA' or event='XXXXXXXXXX'
qui me donne tout. Toutes les suggestions - je devine que je dois descendre la route «rejoindre», n'est-ce pas?
Beaucoup mieux que la requête SELECT ... WHERE EXISTS (...) 'que j'écrivais. ;) – cdhowie
en fait, c'est faux car il fait "soit" et non "les deux". la révision maintenant :) –
sélectionnez user_id distinct de ( select user_id de mesdonnées où l'événement = 'AAAAAAAAAAA' union select user_id de mesdonnées où l'événement = 'XXXXXXXXXXX'; ) –