에라모르겠다(‘◇’)?

쿼리 참고용 본문

이것저것 참고용

쿼리 참고용

도토리즈 2023. 6. 28. 00:17
SELECT
    ci.table_name AS table_type,
    CONCAT('[', GROUP_CONCAT('"', ci.column_name, '"'), ']') AS field_list,
    CONCAT(
   '[',
        (SELECT CONCAT(
            '"', MIN(vi.year), '",',
            '"', MIN(vi.month), '",',
            '"', MIN(vi.day), '"'
        ) FROM value_info vi WHERE vi.table_name = ci.table_name),
        ']'
    ) AS value_list,
        CONCAT(
        '[',
        (SELECT GROUP_CONCAT('"', ti.time_column, '"')
        FROM time_info ti WHERE ti.table_name = ci.table_name),
        ']'
    ) AS time_list,
     CONCAT(
        '[',
        (SELECT CONCAT(
            '"', MIN(tv.year), '",',
            '"', MIN(tv.month), '"'
        ) FROM time_value tv WHERE tv.table_name = ci.table_name),
        ']'
    ) AS time_value
FROM
    column_info ci
where ci.key_type = 'pk'
GROUP BY
    ci.table_name;

concat 안에  서브쿼리 사용, where 조건문 left table의 key 값  = 서브쿼리에 사용된 테이블의 key 값 

 

아래는 postgresql ver

SELECT
    ci.table_name AS table_type,
    CONCAT('[', STRING_AGG('"', ci.column_name, '"'), ']') AS field_list,
    CONCAT(
        '[',
        (SELECT CONCAT(
            '"', MIN(vi.year), '",',
            '"', MIN(vi.month), '",',
            '"', MIN(vi.day), '"'
        ) FROM value_info vi WHERE vi.table_name = ci.table_name),
        ']'
    ) AS value_list,
    CONCAT(
        '[',
        (SELECT STRING_AGG('"', ti.time_column, '"')
        FROM time_info ti WHERE ti.table_name = ci.table_name),
        ']'
    ) AS time_list,
    CONCAT(
        '[',
        (SELECT CONCAT(
            '"', MIN(tv.year), '",',
            '"', MIN(tv.month), '"'
        ) FROM time_value tv WHERE tv.table_name = ci.table_name),
        ']'
    ) AS time_value
FROM
    column_info ci
WHERE
    ci.key_type = 'pk'
GROUP BY
    ci.table_name;

'이것저것 참고용' 카테고리의 다른 글

참고용  (0) 2023.06.19
쿼리 테스트  (0) 2023.06.15
Comments