집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 쿼리에서 '필드 목록의 열 'id'가 모호합니다.'를 해결하는 방법은 무엇입니까?
MySQL 쿼리에서 모호한 'id' 열 처리
열 이름(예: "id")을 공유하는 여러 테이블로 작업하면 종종 "필드 목록의 'id' 열이 모호합니다." 오류가 발생합니다. 이는 쿼리가 소스 테이블을 지정하지 않고 'id' 열을 선택할 때 발생합니다.
MySQL은 두 가지 명확한 솔루션을 제공합니다.
1. 명시적인 테이블 이름 지정 또는 별칭 지정
명확한 식별을 위해 'id' 열 앞에 테이블 이름을 붙입니다.
<code class="language-sql">SELECT tbl_names.id, tbl_section.id, name, section FROM tbl_names, tbl_section WHERE tbl_names.id = tbl_section.id;</code>
2. 선호하는 방법: ANSI-92 JOIN 구문
이 접근 방식은 더 깔끔하고 읽기 쉬운 코드를 위해 별칭을 사용합니다.
<code class="language-sql">SELECT n.id, s.id, n.name, s.section FROM tbl_names n JOIN tbl_section s ON s.id = n.id;</code>
여기서 'n'과 's'는 각각 tbl_names
, tbl_section
의 별칭입니다. 이렇게 하면 모호함이 사라집니다.
모범 사례: 별칭 수용
별칭(방법 2)을 사용하는 것이 좋습니다. 특히 동일한 테이블을 여러 번 사용할 때 더욱 간결하고 이해하기 쉬운 쿼리가 생성됩니다.
ANSI-92 JOIN을 선택하는 이유는 무엇입니까?
MySQL은 여전히 이전 ANSI-89 JOIN 구문(쉼표로 구분된 테이블 목록에서 암시적으로 사용됨)을 지원하지만 ANSI-92가 더 우수합니다. 이는 ANSI-89에 없는 기능인 OUTER 조인(LEFT, RIGHT, FULL)에 대한 중요한 지원을 제공합니다. MySQL은 ANSI-89와의 역호환성을 유지하지만 최신 ANSI-92 표준을 채택하는 것이 명확성과 기능 향상을 위한 모범 사례입니다.
위 내용은 MySQL 쿼리에서 '필드 목록의 열 'id'가 모호합니다.'를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!