여러 개의 조인이있는 쿼리가 있습니다. 내 쿼리는 총 단계를 기준으로 리더 보드의 상위 10 명을 반환합니다. 열의 값이 out
으로 설정된 모든 행을 제외 시키려고합니다.특정 행 제외
MySQL의 쿼리는 스탠드로 :
SELECT ga.owner_id, u.displayname, g.title, SUM(ga.steps) as `Total Steps`, u.user_id, g.group_id, pri.privacy FROM engine4_passport_goalactivitys ga
LEFT JOIN engine4_passport_goals goals ON goals.goal_id = ga.owner_id
LEFT JOIN engine4_passport_passports p ON p.passport_id = goals.owner_id
LEFT JOIN engine4_users u ON u.user_id = p.owner_id
LEFT JOIN engine4_passport_teams t ON t.owner_id = u.user_id
LEFT JOIN engine4_group_groups g ON g.group_id = t.group_id
LEFT JOIN engine4_passport_privacy pri on pri.user_id = u.user_id
GROUP BY u.user_id
ORDER BY `Total Steps` DESC
LIMIT 0,10
나는 시도했다 :
SELECT ga.owner_id, u.displayname, g.title, SUM(ga.steps) as `Total Steps`, u.user_id, g.group_id, pri.privacy FROM engine4_passport_goalactivitys ga
LEFT JOIN engine4_passport_goals goals ON goals.goal_id = ga.owner_id
LEFT JOIN engine4_passport_passports p ON p.passport_id = goals.owner_id
LEFT JOIN engine4_users u ON u.user_id = p.owner_id
LEFT JOIN engine4_passport_teams t ON t.owner_id = u.user_id
LEFT JOIN engine4_group_groups g ON g.group_id = t.group_id
LEFT JOIN engine4_passport_privacy pri on pri.user_id = u.user_id
AND pri.privacy <> 'out'
GROUP BY u.user_id
ORDER BY `Total Steps` DESC
LIMIT 0,10
위의 두 쿼리의 차이는 라인 : 그러나
AND pri.privacy <> 'out'
, 개인 정보가 'out'으로 설정된 사용자를 제외하는 대신 th 쿼리에서 그들과 그냥 내가 대신 and
의 where
을 시도 null
에 개인 정보 값을 설정하지만, 그것은 단지 0 행을 반환합니다.
. 0 행을 반환합니다. – RSM