JOIN ( 여러 TABLE을 연결 )
- 두 Table의 공통된 정보 (key value)를 기준으로 [한 Table]처럼 보는 것
- ex) user_id Field 기준으로 user 와 orders Table을 연결해서 한눈에 보는 것
종류
LEFT JOIN ![300](https://i.imgur.com/1grDrJl.png)
-
SELECT * FROM users u LEFT JOIN point_users p ON u.user_id = p.user_id
LNNER JOIN
-
SELECT * FROM users u INNER JOIN point_users p ON u.user_id = p.user_id
예제 1.
orders Table 과 users Table 연결
LEFT JOIN ( 두 TABLE 은 users_id라는 같은 FieldName 이 있음)
orders > users
- SELECT * FROM orders o LEFT JOIN users u on o.user_id = u.user_id
users > orders ![](https://i.imgur.com/1ozNtTo.png) ‼ ⚠ 둘다 user_id 라는 fieldName 으로 LEFT JOIN 한 것이지만 데이터의 모습은 다르다.
원하는 조건을 고려하여 쿼리문을 작성해야한다.
INNER JOIN
-
SELECT * FROM users u INNER JOIN orders o ON u.user_id = o.user_id
-
SELECT * FROM orders o INNER JOIN users u ON o.user_id = u.user_id ‼ ⚠ INNER JOIN 은 공통된 data 를 추출하기 때문에 같은 field를 보여주지만 field의 순서가 다르다.
예제2.
checkins Table 과 users Table 연결
LEFT JOIN ( 두 TABLE 은 users_id라는 같은 FieldName 이 있음)
-
SELECT * FROM checkins c LEFT JOIN users u ON c.user_id = u.user_id
-
SELECT * FROM users u LEFT JOIN checkins c ON u.user_id = c.user_id
INNER JOIN
- SELECT * FROM users u INNER JOIN checkins c ON u.user_id = c.user_id
예제 3.
enrolleds Table 과 courses Table 연결
LETF JOIN ( 두 TABLE 은 course_id라는 같은 FieldName 이 있음)
-
SELECT * FROM enrolleds e LEFT JOIN courses c ON e.course_id = c.course_id
-
SELECT * FROM courses c LEFT JOIN enrolleds e ON c.course_id = e.course_id
INNER JOIN
- SELECT * FROM enrolleds e INNER JOIN courses c ON c.course_id = e.course_id