如何过滤具有多行的用户,其中 row1="value1" 和 row2="condition2", ... 在 SQL 中?
How to filter users that have multiple rows where row1="value1" and row2="condition2", ... in SQL?
A有以下数据
id user_id visited_country
1 12 Spain
2 12 France
3 14 England
4 14 France
5 16 Canada
6 14 Spain
7 16 Mexico
我想select访问过西班牙和法国的所有用户,不包括 去过 英国 的人。我怎样才能在 MySQL 中做到这一点?
一种聚合方法可能是:
SELECT user_id
FROM yourTable
GROUP BY user_id
HAVING SUM(visited_country = 'Spain') > 0 AND
SUM(visited_country = 'France') > 0 AND
SUM(visited_country = 'England') = 0;
A有以下数据
id user_id visited_country
1 12 Spain
2 12 France
3 14 England
4 14 France
5 16 Canada
6 14 Spain
7 16 Mexico
我想select访问过西班牙和法国的所有用户,不包括 去过 英国 的人。我怎样才能在 MySQL 中做到这一点?
一种聚合方法可能是:
SELECT user_id
FROM yourTable
GROUP BY user_id
HAVING SUM(visited_country = 'Spain') > 0 AND
SUM(visited_country = 'France') > 0 AND
SUM(visited_country = 'England') = 0;