서브쿼리는 쿼리내에서 일부분의 데이터를 가져올 때 사용할 수 있습니다. 전체적인 데이터를 들고 오는 방식이 아닌 원하는 데이터들만 조회해서 들고 오기 때문에 JOIN연산을 진행할 수 있습니다.
SELECT
p.id,
p.names,
p.price,
p.sub_description,
image.image_url,
pd.descriptions AS detail,
p.descriptions
FROM product p
JOIN sub_category
ON p.sub_category_id = sub_category.id
JOIN main_category
ON sub_category.main_category_id = main_category.id
JOIN (SELECT product_id, JSON_ARRAYAGG(image_url) AS image_url FROM product_image GROUP BY product_id) AS image
ON image.product_id = p.id
JOIN product_detail pd
ON pd.product_id = p.id
WHERE p.id =1;
sub-query도 query이기 때문에 독립적으로 실행을 했을 때 실행이 되어야합니다.
JOIN을 많이하고JSON_ARRAYAGG를 사용해서 GROUP BY로 묶어줬는데 안되서 Sub-query로 변경해서 작용해주었습니다.
'mysql' 카테고리의 다른 글
unic5n - showRoom 쿼리문 (0) | 2023.04.15 |
---|---|
LIMIT (0) | 2023.04.06 |
정규화 간단정리 (0) | 2023.04.02 |
SQL Error 1064(42000) (0) | 2023.03.23 |
CONSTRAINT 제약조건 (0) | 2023.03.22 |