[SQL] JOIN
2025. 5. 21. 16:24ㆍCoding Study/데이터베이스
OUTER JOIN
LEFT 테이블 기준 item.id 와 stock.item_id 일치값 합쳐서 보여주기
우측테이블 기준으로 하려면 RIGHT 를 하면 된다.
SELECT
item.id,
item.name,
stock.item_id,
stock.inventory_count
FROM item LEFT OUTER JOIN stock
ON item.id = stock.item_id
joint 테이블 alias 붙이기 FROM 코드기준으로 위아래 코드 전체다 적용을 해야 한다.
SELECT
i.id,
i.name,
s.item_id,
s.inventory_count
FROM item AS i LEFT OUTER JOIN stock AS s
ON i.id = s.item_id
INNER JOIN
두 테이블의 값이 동일한 값(교집합)들만 출력한다.
SELECT
i.id,
i.name,
s.item_id,
s.inventory_count
FROM item AS i INNER JOIN stock AS s
ON i.id = s.item_id
세개의 테이블 JOIN
i 기준 r 테이블을 item_id와 id를 i테이블 기준 JOIN 후
m 테이블을 mem 와 id 기준으로 첫번째 Join 한테이블과 JOIN
SELECT
i.name, i.id,
r.item_id, r.star, r.comment, r.mem_id,
m.id, m.email
FROM
item AS i LEFT OUTER JOIN review AS r
ON r.item_id = i.id
LEFT OUTER JOIN member AS m
ON r.mem_id = m.id
3개의 테이블 Join 후
i.id 값과 i.name 으로 grouping
gender 값이 f 인 것만 선택
star 평균값 기준으로 내림차순 정렬
SELECT
i.id, i.name, AVG(star)
FROM
item AS i LEFT OUTER JOIN review AS r
ON r.item_id = i.id
LEFT OUTER JOIN member AS m
ON r.mem_id = m.id
WHERE m.gender ="f"
GROUP BY i.id , i.name
ORDER BY AVG(star) DESC
'Coding Study > 데이터베이스' 카테고리의 다른 글
| Prisma /데이터베이스/ 3Tier의 개념 (2) | 2025.05.22 |
|---|---|
| [SQL] 기타 팁 (1) | 2025.05.21 |
| [SQL] 서브 쿼리 (0) | 2025.05.21 |
| [SQL]GROUPING (0) | 2025.05.21 |
| SQL 명령어 (CRUD 기준) (0) | 2025.05.19 |