select * from user left join payment on user.id = payment.user_id // payment가 있거나 없는 모든 유저의 정보를 보여줌
where exists (select * from user where user.id in (1, 2)) // 유저 아이디 가 1이거나 2인 모든 유저를 보여줌
where exists (select * from user where user.id not in (1, 2)) // 유저 아이디 가 1이거나 2가 아닌 모든 유저를 보여줌, null 포함
SELECT * FROM a WHERE a.key NOT IN ( SELECT b.key FROM b )
✔︎ b 테이블을 먼저 접근
✔︎ b.key를 IN 리스트에 나열 후 a.key에 공급
✔︎ b테이블: '공급자 역할'
SELECT FROM a WHERE NOT EXISTS ( SELECT FROM b WHERE a.key = b.key )
✔︎ a 테이블을 먼저 접근
✔︎ 구해진 a의 row들을 NOT EXISTS절의 b테이블에서 필터링
✔︎ b테이블: '확인자 역할'
출처: https://hellomysql.tistory.com/entry/IN-EXIST-정리 [Hello, MySQL !]