1) 这将返回每个用户的 FB 类型授权的实际数 :
`` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` `
Select Name UserName, ID UserID, COUNT(FBAuth) FBAuthCount
from Users LEFT JOIN
(Select UserID, COUNT(AuthType) FBAuth from Auth
Where AuthType = FB
Group by USERID) Auths on (Users.ID = Auths.UserId)
Group by ID, Name
`` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` `
依据授权类型, 每位用户将返回真实或虚假的国旗 :
`` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` `
Select Name UserName, ID UserID,
CASE WHEN COUNT(FBAuth) > 0 THEN TRUE ELSE FALSE END FBAuthFLAG
from Users LEFT JOIN
(Select UserID, COUNT(AuthType) FBAuth from Auth
Where AuthType = FB
Group by USERID) Auths on (Users.ID = Auths.UserId)
Group by ID, Name
`` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` `
Using a join on smaller dataset: faster response.
Finally, I believe this is the one:
`` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` `
SELECT users.id,
users.email,
users.name,
users.sid,
users.created_at,
( CASE
WHEN fb_auth > 0
THEN true
ELSE false
END ) AS facebook
FROM users
LEFT JOIN (SELECT authentications.user_id,
Count(authentications.provider) fb_auth
FROM authentications
WHERE provider = facebook
GROUP BY user_id) auths
ON ( users.id = auths.user_id )
GROUP BY users.id,
users.email,
users.name,
users.sid,
users.created_at
`` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ``` ``` ` `` ` `` ``` ` `` ` `` ``` ` `` ``` ``` ` `` ` `` ``` ` `` `