Cross Join
- 모든 경우의 수를 보여주는 Join
SELECT * FROM customers, cars
Inner Join
- 두 테이블 조건절을 통해 일치하는 경우에만 Join 실행
SELECT * FROM customers, cars WHERE customers.id = cars.customer_id
혹은
SELECT * FROM customers INNER JOIN cars ON customers.id = cars.customer_id
혹은
SELECT *
FROM customers AS a, cars AS B
WHERE a.id = b.customer_id
Outer Join
- 조건에 해당하지 않는 결과라도 조회가 가능하도록 JOIN 처리
- 조건에 해당하지 않는 열값은 Null 처리됨
SELECT *
FROM customers AS a
LEFT OUTER JOIN cars AS b
ON a.id = b.customer_id
Right outer join은
SELECT *
FROM customers AS a
RIGHT OUTER JOIN cars AS b
ON a.id = b.customer_id
Join update/Delete
- Join된 table에서 데이터를 수정하거나 삭제하고 싶을 때
update는
UPDATE cars
SET price = 1000000
FROM customer AS a
INNER JOIN price AS b
ON a.id = b.customer_id
WHERE a.name = '홍길동'
delete는
DELETE cars
FROM customer AS a
INNER JOIN cars AS b
ON a.id = b.customer_id
WHERE a.name = '홍길동'
그런데, 여기서 다룬 예제 코드는 MSSQL에서만 작동할 가능성이 크다.. 이런.. 혹여 다른 RDBMS를 사용할 때에는 주의깊게 사용하여야 할 필요가 있다..