2010-01-29 57 views
0

查詢1:這會統計所有的電子郵件 '[email protected]'複雜的結合SQL

select count(*) as total from userbase 
join extrauserinfofromhrms on userbase.username = extrauserinfofromhrms.useremail 
right join logevent on userbase.username = logevent.useremail 
join eachworkflow on logevent.workflowid= eachworkflow.workflowid 
where logevent.actionname ='complete' and logevent.useremail like '[email protected]' 

查詢2的記錄:單用電子郵件將所有的用戶..

select userbase.username from userbase 
join extrauserinfofromhrms on userbase.username = extrauserinfofromhrms.useremail 

如何使用query2列出所有用戶使用emailaddress並使用每個emailaddrses作爲query1中的參數?

回答

1

SQL是一種基於集合的語言。當我們停止以逐行方式思考時,它效果最佳。你應該使用的是一個聚合查詢:

select userbase.username 
     , count(*) as total 
from userbase 
    join extrauserinfofromhrms on userbase.username = extrauserinfofromhrms.useremail 
    right join logevent on userbase.username = logevent.useremail 
    join eachworkflow on logevent.workflowid= eachworkflow.workflowid 
where logevent.actionname ='complete' 
and logevent.useremail like '[email protected]' 
group by userbase.username 
/