programing

MariaDB Left join이 예상 결과를 반환하지 않음

javamemo 2023. 7. 24. 22:10
반응형

MariaDB Left join이 예상 결과를 반환하지 않음

그래서 python에서 자동화된 마리아 백업 복원을 시도하기 위해 테이블 목록과 테이블에 존재하는 외부 제약 조건을 가져오려고 합니다.다음 쿼리를 실행하고 있습니다.

SELECT a.TABLE_NAME, b.CONSTRAINT_NAME from information_schema.tables a
LEFT JOIN information_schema.table_constraints b
    ON a.table_name = b.table_name
WHERE a.table_schema = 'world'
    AND b.constraint_type = 'FOREIGN KEY';

내 "세계" 테스트 테이블에는 국가(FK 없음), 국가 언어(1개) 및 도시(1개)의 3개 열이 있습니다.위의 질문으로 저는 3개의 테이블, 2개의 FK 이름을 반환하고 1개의 Null을 예상할 수 있지만, 제가 받는 반환은 FK가 있는 2개의 테이블뿐입니다.

분명히 뭔가를 놓쳤지만 정확히 꼬집어 말할 수는 없습니다.

왼쪽 조인 조건은 ON 절에서 이동해야 하며 다음 위치에서 이동하면 안 됩니다.

    select a.TABLE_NAME
        , b.CONSTRAINT_NAME 
    from information_schema.tables a
    left join information_schema.table_constraints b
        on a.table_name = b.table_name
            and b.constraint_type = 'FOREIGN KEY';
    where a.table_schema = 'world'

이 절이 내부 조인으로 작동하는 왼쪽 조인 테이블 열을 사용하는 경우.따라서 juts는 왼쪽 조인된 열에 대해 다른 절과 함께 ON 조건을 확장합니다.

언급URL : https://stackoverflow.com/questions/55108483/mariadb-left-join-not-returning-expected-results

반응형