테이블 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';
'Server > DB' 카테고리의 다른 글
MySQL) 콜백지옥 벗어나기. sql-template-strings를 활용 (0) | 2022.05.03 |
---|---|
MySQL) UniqueKey를 활용해 UPSERT 하기 (0) | 2022.04.27 |
Prisma) QueryBuilder, RawQuery and SQL-Teamplate-String (0) | 2022.04.15 |
MySQL) JSON_SEARCH 데이터 추출하기 (0) | 2022.04.15 |
console.time()으로 DB 접속시간 확인하기 (0) | 2022.04.04 |