mysql 쿼리 질문드립니다 0 1 885

by 메밀묵도토리묵 [SQL Query] mariadb dbeaver [2022.06.29 11:23:40]


fruit_id fruit_name parent_fruit_id
FRUIT_1000 자두  
FRUIT_1100 키위 FRUIT_1000
FRUIT_1101 포도 FRUIT_1100
FRUIT_1103 사과 FRUIT_1100
FRUIT_2000  
FRUIT_2100 딸기 FRUIT_2000
FRUIT_2101 수박 FRUIT_2100

 

SQL 초보자입니다,, 위의 테이블을 mysql 쿼리를 이용해서, 아래처럼 만들어보려고 하고 있는데요,,

parent_fruit_id를 위의 데이터의 fruit_id와 같은 fruit_name을 표시하면서, 맨 위(?)의 fruit_id의 parent_fruit_id로 표시하고 싶은데, 어떻게 해야할지 잘 모르겠습니다..

fruit_id fruit_name parent_fruit_id
FRUIT_1000 자두 자두
FRUIT_1100 키위 자두
FRUIT_1101 포도 자두
FRUIT_1103 사과 자두
FRUIT_2000
FRUIT_2100 딸기
FRUIT_2101 수박

 

by 마농 [2022.06.29 12:29:57]
WITH RECURSIVE tmp AS
(
WITH fruit AS
(
SELECT 'FRUIT_1000' fruit_id, '자두' fruit_name, NULL parent_fruit_id
UNION ALL SELECT 'FRUIT_1100', '키위', 'FRUIT_1000'
UNION ALL SELECT 'FRUIT_1101', '포도', 'FRUIT_1100'
UNION ALL SELECT 'FRUIT_1103', '사과', 'FRUIT_1100'
UNION ALL SELECT 'FRUIT_2000', '배'  , NULL
UNION ALL SELECT 'FRUIT_2100', '딸기', 'FRUIT_2000'
UNION ALL SELECT 'FRUIT_2101', '수박', 'FRUIT_2100'
)
SELECT fruit_id, fruit_name, parent_fruit_id
     , fruit_name root_name
  FROM fruit
 WHERE parent_fruit_id IS NULL
 UNION ALL
SELECT c.fruit_id, c.fruit_name, c.parent_fruit_id
     , p.root_name
  FROM tmp p
 INNER JOIN fruit c
    ON p.fruit_id = c.parent_fruit_id
)
SELECT *
  FROM tmp
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입