[SQL] 2005 SQL - 열은 여러 번 지정
SQL2005 SQL - 열은 여러 번 지정
나는 SQL 2005에서이 쿼리를 실행하려고 다음과 같은 오류가 점점 오전 :
SELECT tb.*
FROM (
SELECT *
FROM vCodesWithPEs INNER JOIN vDeriveAvailabilityFromPE
ON vCodesWithPEs.PROD_PERM = vDeriveAvailabilityFromPE.PEID
INNER JOIN PE_PDP ON vCodesWithPEs.PROD_PERM = PE_PDP.PEID
) AS tb;
Error: The column 'PEID' was specified multiple times for 'tb'.
나는 SQL로 새로운 오전. 귀하의 조언에 미리 감사드립니다.
위치.
해결법
-
==============================
1.문제는, 언급 한 바와 같이, 두 개의 테이블에서 PEID를 선택하는 것입니다,이 솔루션은 예를 들어, 당신이 원하는 않는 PEID 지정하는 것입니다
문제는, 언급 한 바와 같이, 두 개의 테이블에서 PEID를 선택하는 것입니다,이 솔루션은 예를 들어, 당신이 원하는 않는 PEID 지정하는 것입니다
SELECT tb.* FROM ( SELECT tb1.PEID,tb2.col1,tb2.col2,tb3.col3 --, and so on FROM vCodesWithPEs as tb1 INNER JOIN vDeriveAvailabilityFromPE as tb2 ON tb1.PROD_PERM = tb2.PEID INNER JOIN PE_PDP tb3 ON tb1.PROD_PERM = tb3.PEID ) AS tb;
외부 SELECT 완전히 불필요한 코멘트 아웃 크리스 라이블리 영리 점으로, 그 외에. 다음은 첫 번째와 완전히 동일합니다.
SELECT tb1.PEID,tb2.col1,tb2.col2,tb3.col3 --, and so on FROM vCodesWithPEs as tb1 INNER JOIN vDeriveAvailabilityFromPE as tb2 ON tb1.PROD_PERM = tb2.PEID INNER JOIN PE_PDP tb3 ON tb1.PROD_PERM = tb3.PEID
또는
SELECT * FROM vCodesWithPEs as tb1 INNER JOIN vDeriveAvailabilityFromPE as tb2 ON tb1.PROD_PERM = tb2.PEID INNER JOIN PE_PDP tb3 ON tb1.PROD_PERM = tb3.PEID
하지만 가능하면 SELECT *를 사용하여 피해주십시오. 그것은 당신이 입력을 저장하는 대화 형 쿼리를 수행하는 동안 작동하지만 생산 코드를 사용하지 않을 수 있습니다.
-
==============================
2.vDeriveAvailabilityFromPE 및 PE_PDP : 당신처럼 보이는 두 테이블의 열 PEID 있습니다. SELECT 문은 모두 선택을 시도하고 중복 된 열 이름에 대한 오류를 제공합니다.
vDeriveAvailabilityFromPE 및 PE_PDP : 당신처럼 보이는 두 테이블의 열 PEID 있습니다. SELECT 문은 모두 선택을 시도하고 중복 된 열 이름에 대한 오류를 제공합니다.
-
==============================
3.당신은 세 개의 테이블을 조인, 출력 (*)의 모든 열에서 찾고 있습니다.
당신은 세 개의 테이블을 조인, 출력 (*)의 모든 열에서 찾고 있습니다.
테이블은 당신이 다른 것을 같은 별칭으로 할거야 공통 열 이름 PEID를 가질 것 같습니다.
해결 방법 : 하위 쿼리에서 * 사용하지만, 명시 적으로 두 번 이상 나타나는 열 이름을 앨리어싱, 당신이보고 싶은 각 열을 선택하지 마십시오.
-
==============================
4.대신 모든 필드를 수집 식별 *를 사용하는 명시 적으로 쿼리를 다시 작성 원하는 열 이름을 지정합니다. 그런 식으로 혼란은 일어나지 않는다.
대신 모든 필드를 수집 식별 *를 사용하는 명시 적으로 쿼리를 다시 작성 원하는 열 이름을 지정합니다. 그런 식으로 혼란은 일어나지 않는다.
-
==============================
5.단지 반복, 그것은 나를 위해 일하는 열에 대한 새 별명 이름을 지정합니다 .....
단지 반복, 그것은 나를 위해 일하는 열에 대한 새 별명 이름을 지정합니다 .....
from https://stackoverflow.com/questions/1058606/sql-2005-the-column-was-specified-multiple-times by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 왜 그렇게 높은 윈도우 집계 함수에 대한 읽고 논리적인가? (0) | 2020.05.13 |
---|---|
[SQL] 로 ... 파티션 (이상 ROW_NUMBER ()의 sqlite가 동등한? (0) | 2020.05.13 |
[SQL] SQL Server의 IsInteger위한 최고의 상응 (0) | 2020.05.13 |
[SQL] 나는 IGNORE_DUP_KEY는 기본 키에 설정할 수 있습니까? (0) | 2020.05.13 |
[SQL] 합니까 UNION ALL 결과 집합의 순서를 보장 [중복] (0) | 2020.05.13 |