查询以查找表

时间:2015-10-12 05:11:12

标签: mysql

我有一个表“users”,它有多列,其中“status”列有多个值,如1,0,3,2,4。有一个列“user_id”,它不包含唯一值,因为这是另一个名为“user_master”的表的外键。

所以在“users”表中我们有一个用户的多个值。

所以,这是我的实际查询是我想写一个sql查询来查找用户只有一个条目“用户”具有特定的状态值。

例如我想获取status = 2的所有这些用户,并且他们在表中的条目不超过1.就像用户在表中有多个状态为2,1,4的条目一样,不应该在查询中返回。

它应该产生那些在表中只有一个条目并且状态= 2

的用户

3 个答案:

答案 0 :(得分:1)

那一定是你用的:

Select count(u.user_id) AS cnt, u.* 
from user u
where u.status = 2
group by u.user_id, u.status
having cnt = 1;

答案 1 :(得分:0)

WITH tmp AS(
SELECT Stud_Id,COUNT(*) AS 'Count' FROM Student_tbl GROUP BY Stud_Id
)

SELECT * FROM tmp WHERE Count = 1 AND Status = 2

您必须在GROUP BY子句中添加要在SELECT子句中使用的字段。

答案 2 :(得分:0)

我已经研究过并找到答案。

查询就是这样。

select count(id) as cnt,
user_id,status from users 
group by user_id 
having cnt < 2 and status=2

首先,它会将数量少于2的东西分组,然后检查状态。