1
LEFT JOIN 문을보다 간단한 쿼리에 결합하는 방법이 있다는 것을 기억하는 것 같습니다. 나는 다음의 질의를 가지고 누군가가 친절하게 그것을 볼 수 있기를 희망했다. 당신은 그냥 가입 유지하기 위해 앞서 언급 한 열을 참조 할 수 있습니다)mysql에서 조인을 결합하는 구문
SET @userId = 8;
SELECT ug.user_id, COUNT(DISTINCT goal_id) as matches
FROM user_goal ug, user u, profile p
LEFT JOIN user_block ub ON @userId = ub.blocked_id
LEFT JOIN user_block ub2 ON @userId = ub2.blocker_id
LEFT JOIN user_user uu ON @userId = uu.user_id
LEFT JOIN friend_request fr ON @userId = fr.user_id
WHERE ug.user_id = u.id AND u.profile_id = p.id
AND (ub.blocker_id IS NULL OR ub.blocker_id != ug.user_id)
AND (ub2.blocked_id IS NULL OR ub2.blocked_id != ug.user_id)
AND (uu.user_friends_id IS NULL OR uu.user_friends_id != ug.user_id)
AND (fr.to_user_id IS NULL OR (fr.to_user_id != ug.user_id))
AND [email protected]
AND p.suggestible
AND goal_id IN (SELECT iug.goal_id FROM user_goal iug WHERE [email protected])
GROUP BY user_id ORDER BY matches DESC LIMIT 4