쿼리 모음 1 - count 시 0 포함, depth join, group_concat
2022.08.20
- count 시 0 포함하는 쿼리
- 호출하고 싶은 모든 기준 정보를 가지고 있는 테이블 A와 카운트를 가져올 테이블 B를 join
- 물론 테이블 A와 테이블 B는 같은 테이블일 수 있음
SELECT a.기준필드, COUNT(b.기준필드)
FROM 테이블A a
LEFT OUTER JOIN
(SELECT * FROM 테이블B WHERE 조건) b
ON (a.기준필드 = b.기준필드)
WHERE a 테이블 조건
GROUP BY a.기준필드
ORDER BY a 테이블 조건
- depth join
- depth를 가진 데이터는 inner join으로 데이터를 가져옴
- id = 1, depth = 1, parent_id = null
id = 2, depth = 2, parent_id = 1
id = 3, depth = 3, parent_id = 2
id = 4, depth = 3, parent_id = 2
SELECT one.id, two.id, three.id
FROM 테이블 one
INNER JOIN 테이블 two ON one.id = two.parent_id
INNER JOIN 테이블 three ON two.id = three.parent_id
- group concat
- group by는 기준필드 및 집계함수만 select가 가능하지만
group concat을 쓰면 다른 필드의 데이터 집합을 횡렬로 출력 가능
SELECT 기준필드, count(기준필드), GROUP_CONCAT(일반필드)
FROM 테이블
WHERE
GROUP BY 기준필드
- group by는 기준필드 및 집계함수만 select가 가능하지만
-
- group concat은 join + group by 최상위 depth와도 사용 가능하다.
- -> 조인한 하위 테이블들의 데이터가 횡렬로 출력됨
댓글을 작성해보세요.