>데이터 베이스 >MySQL 튜토리얼 >내 PostgreSQL LEFT JOIN이 '열이 존재하지 않습니다' 오류와 함께 실패하는 이유는 무엇입니까?

내 PostgreSQL LEFT JOIN이 '열이 존재하지 않습니다' 오류와 함께 실패하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-13 09:08:43312검색

Why Does My PostgreSQL LEFT JOIN Fail with a

PostgreSQL LEFT JOIN 오류 문제 해결: 대소문자 구분 및 열 이름

LEFT JOIN을 사용하여 SQL 쿼리를 실행하면 때때로 "열... 존재하지 않습니다"라는 실망스러운 오류가 발생할 수 있습니다. 이는 열 이름이 참조되는 방식의 불일치로 인해 발생하는 경우가 많습니다.

이 예에서는 PostgreSQL의 대소문자 구분이라는 일반적인 함정을 강조합니다. main_sim 테이블에는 FK_Numbers_id이라는 외래 키 열이 포함되어 있습니다. 테이블 정의(d main_sim)가 존재를 확인하는 동안 열 이름의 대소문자가 일관되지 않아 쿼리가 실패합니다. 쿼리에서는 FK_Numbers_id(대문자)를 사용하지만 데이터베이스에서는 이를 fk_numbers_id(소문자)로 저장합니다.

여기서 PostgreSQL의 대소문자 구분은 매우 중요합니다. 문서에서 권장하는 대로 큰따옴표로 묶은 열 이름을 사용하여 테이블을 생성하면 모든 열 이름은 대/소문자를 엄격하게 구분합니다. 이는 반드시 검색어에 큰따옴표를 포함하여 정확한 대소문자를 사용해야 함을 의미합니다.

해결책:

수정된 쿼리는 큰따옴표를 사용하여 열 이름의 대소문자를 명시적으로 지정합니다.

<code class="language-sql">SELECT sim.id AS idsim, 
       num.id AS idnum 
FROM main_sim sim 
LEFT JOIN main_number num ON ("FK_Numbers_id" = num.id);</code>

이 수정을 통해 올바른 열이 참조되어 "열이 존재하지 않습니다" 오류가 해결되고 LEFT JOIN이 성공적으로 실행될 수 있습니다. PostgreSQL로 작업할 때, 특히 큰따옴표로 묶인 식별자를 처리할 때 일관되고 정확한 대소문자 구분이 필수적이라는 점을 기억하세요.

위 내용은 내 PostgreSQL LEFT JOIN이 '열이 존재하지 않습니다' 오류와 함께 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.