Server/DB
MySQL) Full Outer Join
Juzdalua
2022. 4. 27. 12:12
테이블 A와 B의 매칭정보를 모두 가져오고 싶을 때 사용하는 쿼리.
MySQL에서는 공식적으로 지원하지 않는다.
LeftJoin과 RightJoin, Union을 사용해서 원하는 값을 추출한다.
-- full outer join
SELECT ROLE.UID, ROLE.GUILD_ID, ROLE.ROLE_ID, ROLE.ROLE_NAME,
RULE.UID, RULE.DISABLED, RULE.COLLECTION_UID, RULE.GUILD_UID, RULE.BALANCE
FROM DISCORD_ROLE AS ROLE
LEFT JOIN COLLECTION_VERIFY_RULE AS RULE
ON ROLE.ROLE_ID = RULE.ROLE_ID
WHERE ROLE.GUILD_ID = '950319893226602556'
UNION
SELECT ROLE.UID, ROLE.GUILD_ID, ROLE.ROLE_ID, ROLE.ROLE_NAME,
RULE.UID, RULE.DISABLED, RULE.COLLECTION_UID, RULE.GUILD_UID, RULE.BALANCE
FROM DISCORD_ROLE AS ROLE
RIGHT JOIN COLLECTION_VERIFY_RULE AS RULE
ON ROLE.ROLE_ID = RULE.ROLE_ID
WHERE ROLE.GUILD_ID = '950319893226602556';