> 데이터 베이스 > MySQL 튜토리얼 > 조인 시 SQL의 모호한 열 이름 오류를 해결하는 방법은 무엇입니까?

조인 시 SQL의 모호한 열 이름 오류를 해결하는 방법은 무엇입니까?

DDD
풀어 주다: 2025-01-01 11:12:11
원래의
433명이 탐색했습니다.

How to Resolve SQL's Ambiguous Column Name Error in Joins?

SQL 모호한 열 이름 오류: 자세한 설명

테이블 조인과 관련된 SQL 쿼리로 작업할 때 다음과 같은 경우 오류가 발생할 수 있습니다. 조인된 테이블에 동일한 이름을 가진 여러 열이 있습니다. 이 오류는 데이터베이스에서 열 참조가 속한 테이블을 확인할 수 없기 때문에 발생합니다. 이번 글에서는 이 문제에 대해 자세히 알아보고 해결책을 제시하겠습니다.

다음 쿼리를 고려해보세요.

SELECT 
    VendorName, InvoiceID, InvoiceSequence, InvoiceLineItemAmount
FROM Vendors 
JOIN Invoices ON (Vendors.VendorID = Invoices.VendorID)
JOIN InvoiceLineItems ON (Invoices.InvoiceID = InvoiceLineItems.InvoiceID)
WHERE  
    Invoices.InvoiceID IN
        (SELECT InvoiceSequence 
         FROM InvoiceLineItems
         WHERE InvoiceSequence > 1)
ORDER BY 
    VendorName, InvoiceID, InvoiceSequence, InvoiceLineItemAmount
로그인 후 복사

이 쿼리에서는 "InvoiceID"가 존재하기 때문에 오류가 발생합니다. "Invoices" 및 "InvoiceLineItems" 테이블 모두의 " 열입니다. 데이터베이스는 "InvoiceID" 값을 검색하려는 테이블을 식별할 수 없습니다.

이 모호성을 해결하려면 열을 참조할 때 테이블 이름을 지정해야 합니다. 점 표기법이나 별칭을 사용하여 이를 달성할 수 있습니다. 점 표기법에는 다음과 같이 열 이름 앞에 테이블 이름을 붙이는 작업이 포함됩니다.

SELECT 
    VendorName, Invoices.InvoiceID, InvoiceSequence, InvoiceLineItemAmount
FROM Vendors 
JOIN Invoices ON (Vendors.VendorID = Invoices.VendorID)
JOIN InvoiceLineItems ON (Invoices.InvoiceID = InvoiceLineItems.InvoiceID)
WHERE  
    Invoices.InvoiceID IN
        (SELECT InvoiceSequence 
         FROM InvoiceLineItems
         WHERE InvoiceSequence > 1)
ORDER BY 
    VendorName, Invoices.InvoiceID, InvoiceSequence, InvoiceLineItemAmount
로그인 후 복사

또는 다음과 같이 별칭을 사용할 수 있습니다.

SELECT 
    v.VendorName, i.InvoiceID, il.InvoiceSequence, il.InvoiceLineItemAmount
FROM Vendors AS v  JOIN Invoices AS i ON (v.VendorID = i.VendorID)
JOIN InvoiceLineItems AS il ON (i.InvoiceID = il.InvoiceID)
WHERE  
    i.InvoiceID IN
        (SELECT InvoiceSequence 
         FROM InvoiceLineItems
         WHERE InvoiceSequence > 1)
ORDER BY 
    v.VendorName, i.InvoiceID, il.InvoiceSequence, il.InvoiceLineItemAmount
로그인 후 복사

테이블 이름을 지정하거나 별칭을 사용하여 을 사용하면 참조하는 열을 명시적으로 표시하여 모호성을 해결하고 쿼리를 올바르게 실행할 수 있습니다.

위 내용은 조인 시 SQL의 모호한 열 이름 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿