我有一个查询,查找已完成任务的人员的电子邮件,其中已完成的任务= 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任务的人。
任何帮助表示赞赏。
答案 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