가입 내에서 사용하여 Oracle에서 다음을 수행 할 수있는 방법이 있나요 : 표준 SQL에서는 ON 혼합 한이
SELECT *
FROM Tbl1
JOIN Tbl2
USING (col1)
AND ON Tbl1.col2 = Tbl2.col3
가입 내에서 사용하여 Oracle에서 다음을 수행 할 수있는 방법이 있나요 : 표준 SQL에서는 ON 혼합 한이
SELECT *
FROM Tbl1
JOIN Tbl2
USING (col1)
AND ON Tbl1.col2 = Tbl2.col3
, 당신은 사용할 수 있습니다 사용 또는 ON 있지만 둘 다. 두 가지를 모두 사용할 수 있다면, 예제에서 AND를 생략하십시오. PMV 댓글을 달았
(더 정확하게, 질문 - 또한 포스터의 답변을 참조)
내 문제는 내가 조인을 사용하여 테이블의 무리, 모두를 가지고있다. 다른 키 이름을 가진 테이블을 추가하려고하면 모호한 열 오류가 발생합니다. 내 모든 조인을 ON 조인으로 변환하지 않고이 작업을 수행하는 우아한 방법이 있습니까?
음, 슬프게도 잘못된 이름 컬럼에 의해 부과되는 피해를 최소화하는 가장 좋은 방법은 아마도 (그리고 대략 - 나는 아래의 SQL 디버깅 적이 없다)입니다 :
SELECT *
FROM (SELECT *
FROM Tbl1
JOIN Tbl2 USING (col1, col2, col3, col4)
JOIN Tbl3 USING (col2, col4, col6, col23)
JOIN Tbl4 USING (col2, col8, col3, col23)
) AS SystematicNaming
JOIN Tbl5
ON SystematicNaming.Col1 = Tbl5.Col1
AND SystematicNaming.ColA = Tbl5.PoorlyNamedColA
AND SystematicNaming.ColB = Tbl5.PoorlyNamedColB
이 편리하고 체계적인 보존을 가능한 한 오랫동안 표기법을 사용하고 Tbl5와 조인하는 데 필요한 비 균일 열 이름이 주어지면 관리해야하는 방식으로 Tbl5와 조인을 관리합니다.
나는 그것이 합리적이라고 생각하지만 이것이 가장 좋은 쿼리 레이아웃이라고 확신하지는 않습니다.
SELECT * FROM TBL1 JOIN TBL2 ON TBL1.COL1 = TBL2.COL1 AND TBL1.COL2 = TBL2.COL3
감사 K
SELECT *
FROM Tbl1
INNER JOIN Tbl2
ON Tbl1.col1 = Tbl2.col1
AND Tbl1.col2 = Tbl2.col3
내 문제는 내가 조인 사용과 테이블의 무리, 모두를 가지고있다. 다른 키 이름을 가진 테이블을 추가하려고하면 모호한 열 오류가 발생합니다. 모든 조인을 ON 조인으로 변환하지 않고이 작업을 수행하는 적절한 방법이 있습니까? –