>데이터 베이스 >MySQL 튜토리얼 >MySQL 쿼리에서 '필드 목록의 열 'id'가 모호합니다.'를 해결하는 방법은 무엇입니까?

MySQL 쿼리에서 '필드 목록의 열 'id'가 모호합니다.'를 해결하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-19 18:41:11848검색

How to Resolve

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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