[SQL] SQL에서 모호한 열 이름을 가진 쿼리 오류
SQLSQL에서 모호한 열 이름을 가진 쿼리 오류
나는이 쿼리 (InvoiceID)와 함께 모호한 열 이름 오류가 발생합니다. 그 이유를 알아낼 수 없습니다. 그들은 모두 왜 관리 스튜디오 VendorID 값을 표시 모르는 올바르게 결합 할 것 같다? 어떤 도움을 크게 감상 할 수있다.
질문:
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
해결법
-
==============================
1.당신은 InvoiceID에서 모호성을 가지고 생각합니다. 다른 필드는 별개의 것. 그래서이 시도
당신은 InvoiceID에서 모호성을 가지고 생각합니다. 다른 필드는 별개의 것. 그래서이 시도
난 그냥 Invoices.InvoiceID와 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
당신은 (선택의 경우, GROUP BY와 ORDER BY) 모든 열에 대해 tablename.columnnae을 사용할 수있는 별칭을 사용하지 않고. 당신이 별칭을 사용할 수 있습니다 그러나 다른 답변에 의해 인도로
-
==============================
2.당신은 청구서 테이블 또한 InvoiceLineItems 테이블의 컬럼 InvoiceID 있습니다. 쿼리 실행 엔진은 당신이 반환 할 하나 알 수있는 방법은 없습니다.
당신은 청구서 테이블 또한 InvoiceLineItems 테이블의 컬럼 InvoiceID 있습니다. 쿼리 실행 엔진은 당신이 반환 할 하나 알 수있는 방법은 없습니다.
테이블 별칭을 추가하면 도움이 될 것입니다 :
SELECT V.VendorName, I.InvoiceID, IL.InvoiceSequence, IL.InvoiceLineItemAmount FROM Vendors V JOIN Invoices I ON (...) JOIN InvoiceLineItems IL ON (...) WHERE ... ORDER BY V.VendorName, I.InvoiceID, IL.InvoiceSequence, IL.InvoiceLineItemAmount
-
==============================
3.둘 다 InvoiceID를 포함하는 두 개의 테이블 송장 및 InvoiceLineItems에 합류 때문이다. Invoices.InvoiceID로 변경이 올바른지 확인합니다.
둘 다 InvoiceID를 포함하는 두 개의 테이블 송장 및 InvoiceLineItems에 합류 때문이다. Invoices.InvoiceID로 변경이 올바른지 확인합니다.
-
==============================
4.대부분의 경우 두 테이블은 같은 이름의 열이. 각 테이블 별칭 테이블 별칭과 각 열을 호출합니다.
대부분의 경우 두 테이블은 같은 이름의 열이. 각 테이블 별칭 테이블 별칭과 각 열을 호출합니다.
-
==============================
5.일부 필드는 모두 테이블에 존재한다 (특히 인보이스 테이블과 InvoiceLineItems에 InvoiceID) 때문이다. 질문에 대답하는 방법은 그것에 별칭을 추가하는 것입니다.
일부 필드는 모두 테이블에 존재한다 (특히 인보이스 테이블과 InvoiceLineItems에 InvoiceID) 때문이다. 질문에 대답하는 방법은 그것에 별칭을 추가하는 것입니다.
SELECT a.VendorName, Invoices.InvoiceID, .. -- or use full tableName FROM Vendors a -- This is an `ALIAS` of table 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
-
==============================
6.당신이 2 개 이상의 테이블을 조인하고 그들의 열 SQL Server의 경우 유사한 이름이있는 경우 자신이 속한 열을 한정하고자합니다.
당신이 2 개 이상의 테이블을 조인하고 그들의 열 SQL Server의 경우 유사한 이름이있는 경우 자신이 속한 열을 한정하고자합니다.
SELECT ev.[ID] ,[Description] FROM [Events] as ev LEFT JOIN [Units] as un ON ev.UnitID = un.UnitId
이벤트 및 단위 테이블이 동일한 열 이름이있는 경우 (ID) SQL 서버는 별칭을 사용하고 싶어.
-
==============================
7.당신의 테이블 중 하나는 테이블의 컬럼은 당신이 언급되는에 관한 질의에 혼란을 가져 오는 동일한 열 이름의이 있습니다. 이 코드를 복사 한 후 실행합니다.
당신의 테이블 중 하나는 테이블의 컬럼은 당신이 언급되는에 관한 질의에 혼란을 가져 오는 동일한 열 이름의이 있습니다. 이 코드를 복사 한 후 실행합니다.
SELECT v.VendorName, i.InvoiceID, iL.InvoiceSequence, iL.InvoiceLineItemAmount FROM Vendors AS v JOIN Invoices AS i ON (v.VendorID = .VendorID) JOIN InvoiceLineItems AS iL ON (i.InvoiceID = iL.InvoiceID) WHERE I.InvoiceID IN (SELECT iL.InvoiceSequence FROM InvoiceLineItems WHERE iL.InvoiceSequence > 1) ORDER BY V.VendorName, i.InvoiceID, iL.InvoiceSequence, iL.InvoiceLineItemAmount
-
==============================
8.하나 개 이상의 테이블에 같은 이름을 가진 필드가 있기 때문에, 쿼리에 일어나는 조인의 때문에, 그래서 당신은 테이블에 이름을 (별칭)을주고, 다른 필드를 참조해야합니다.
하나 개 이상의 테이블에 같은 이름을 가진 필드가 있기 때문에, 쿼리에 일어나는 조인의 때문에, 그래서 당신은 테이블에 이름을 (별칭)을주고, 다른 필드를 참조해야합니다.
from https://stackoverflow.com/questions/12662954/query-error-with-ambiguous-column-name-in-sql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 거기 모든 자바 라이브러리가 유효성 검사 SQL 구문? [닫은] (0) | 2020.04.27 |
---|---|
[SQL] 어떻게 MySQL의 쿼리의 최대 실행 시간을 설정하는 방법? (0) | 2020.04.27 |
[SQL] 오라클 : 쉼표로 구분 된 단일 값으로 부질 여러 결과를 결합 [중복] (0) | 2020.04.26 |
[SQL] ISO 8859-1에 UTF8에서 SQL Server의 텍스트 값을 변환 (0) | 2020.04.26 |
[SQL] XML 경로 사용할 때 어떻게 중첩 된 쿼리에서 중복 네임 스페이스를 제거합니까 (0) | 2020.04.26 |