2017-07-26 56 views

回答

2

下面是使用Group BYHaving条款

select user_id 
from yourtable 
group by user_id 
having count(case when group_id = 1 then 1 end) = 0 
+1

这种方式很不错 –

0

使用NOT EXISTS操作和dependend子查询

的一种方式3210
SELECT DISTINCT user_id 
FROM Table t 
WHERE NOT EXISTS (
    Select * FROM Table t1 
    WHERE t1.user_id = t.user_id 
    AND t1.group_id = 1 
) 

您还可以使用NOT IN:

SELECT DISTINCT user_id 
FROM Table t 
WHERE user_id NOT IN (
    SELECT user_id FROM table 
    WHERE group_id = 1 
) 
2

这里是你如何用左手做加盟:

select distinct user_id 
from a_table_you_did_not_name base 
left join a_table_you_did_not_name g1 on base.user_id = g1.user_id and g1.group_id = 1 
where g1.user_id is null 

在这里,你做一个左连接,然后“寻找”没有加入的东西。由于连接需要group_id = 1的存在,因此会提供所需的结果。

相关问题