2017-05-06 86 views
1

我有一個查詢,查找已完成任務的人員的電子郵件,其中完成任務= 1且未完成= 0。該電子郵件位於表jos_users中,任務表名稱爲keyperson。 keyperson表具有標題爲「check1」的用戶標識和任務字段。針對mysql的特殊條件查詢

問題是某些用戶在keyperson表中有多個表示爲多行的check1任務。所以這查詢不工作,因爲它沒有考慮到一些用戶可能有一個排,其中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

注意,DISTINCT不是一個函數。 – Strawberry

+0

請參閱http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-詢問 – Strawberry

回答

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