[SQL] JOIN

2025. 5. 21. 16:24Coding 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