mysql

时间:2017-05-06 13:34:23

标签: mysql

我有一个查询,查找已完成任务的人员的电子邮件,其中已完成的任务= 1且未完成= 0.电子邮件位于表jos_users中,任务表名称为keyperson。 keyperson表具有标题为“check1”的用户ID和任务字段。

问题是某些用户有多个check1任务,在keyperson表中表示为多行。所以这个查询不起作用,因为它没有考虑到某些用户可能有一行其中check1 = 1而更多check1行,其中check1 = 0。

select DISTINCT(u.email) as email 
from jos_users u, keyperson k
where k.kp1 = u.id and k.check1 = 1

该查询将找到已完成至少1个check1任务的所有人,但我需要找到已完成所有check1任务的人。

任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

您可以尝试通过电子邮件进行分组并检查max(check) = min(check) = 1

select u.email
from jos_users u join keyperson k on k.kp1 = u.id
group by u.email
having max(k.check1) = 1 and min(k.check1) = 1