Mysql 如何从同一列中选择满足2个要求的用户
我试图回答以下问题。我需要在曲目栏中选择同时听过曲目1和曲目2的用户。出于某种原因,我完全不知道如何做到这一点。以下是其中一种方法:Mysql 如何从同一列中选择满足2个要求的用户,mysql,sql,select,Mysql,Sql,Select,我试图回答以下问题。我需要在曲目栏中选择同时听过曲目1和曲目2的用户。出于某种原因,我完全不知道如何做到这一点。以下是其中一种方法: SELECT user_id from TABLE_NAME WHERE track = 'track_1' AND user_id IN (SELECT user_id from TABLE_NAME where track = 'track_2'); 以下是其中一种方法: SELECT user_id fro
SELECT user_id from TABLE_NAME
WHERE track = 'track_1' AND
user_id IN
(SELECT user_id from TABLE_NAME where track = 'track_2');
以下是其中一种方法:
SELECT user_id from TABLE_NAME
WHERE track = 'track_1' AND
user_id IN
(SELECT user_id from TABLE_NAME where track = 'track_2');
如果只有两个,您也可以使用GROUP BY并拥有:
SELECT user_id
FROM t
GROUP BY user_id
HAVING COUNT(DISTINCT track) > 1
如果只有两个,您也可以使用GROUP BY并拥有:
SELECT user_id
FROM t
GROUP BY user_id
HAVING COUNT(DISTINCT track) > 1
可能比需要where exists子查询更简单
Select userID
from yourtable
where Track in ('Track 1','Track 2')
group by userid
having count(1) = 2
可能比需要where exists子查询更简单
Select userID
from yourtable
where Track in ('Track 1','Track 2')
group by userid
having count(1) = 2
您可以计算每个用户收听的相关曲目的数量:
SELECT user_id
FROM mytable
WHERE track IN ('track_1', 'track_2')
GROUP BY user_id
HAVING COUNT(DISTINCT track) = 2
您可以计算每个用户收听的相关曲目的数量:
SELECT user_id
FROM mytable
WHERE track IN ('track_1', 'track_2')
GROUP BY user_id
HAVING COUNT(DISTINCT track) = 2
这样行吗
SELECT UserId
FROM YourTable
WHERE Track in ('track_1','track_2')
group by UserId
Having count(distinct Track) > 1;
这样行吗
SELECT UserId
FROM YourTable
WHERE Track in ('track_1','track_2')
group by UserId
Having count(distinct Track) > 1;
谢谢另一个问题。如果我想知道每首歌的发行日期呢。我会使用min功能吗?谢谢!另一个问题。如果我想知道每首歌的发行日期呢。我会使用min函数吗?