다음과 같은 쿼리가 있습니다.SQL : 쿼리에서 두 개의 LEFT OUTER JOIN 사용
SELECT a.ID, a.TURQ_ID, a.UNVAN, a.TIP, a.AKTOR,
a.GSM_ALAN, a.GSM_TEL, a.IS_ALAN, a.IS_TEL,
a.IS_EXT, a.EV_ALAN, a.EV_TEL, a.ADRES,
a.TEMSILCI_ACK,
(CASE WHEN A.YAZ_ADRES IS NULL
THEN (B.IS_ADRES1 +' '+B.IS_ADRES2)
ELSE A.YAZ_ADRES END)
COLLATE DATABASE_DEFAULT AS YAZ_ADRES , A.SEHIR, A.PS, A.MEMO
FROM PROSPECT_MASTER A
LEFT OUTER JOIN YAZ..MARDATA.S_MUSTERI B
ON A.ID IN (B.TC_KIM_NO, B.VERGI_NO) // Result 12730 rows
나는 다른 LEFT OUTER 이런 내 쿼리에서 가입하세요 추가 할;
SELECT a.ID, a.TURQ_ID, a.UNVAN, a.TIP, a.AKTOR,
a.GSM_ALAN, a.GSM_TEL, a.IS_ALAN, a.IS_TEL,
a.IS_EXT, a.EV_ALAN, a.EV_TEL, a.ADRES,
(CASE WHEN a.TEMSILCI_ACK IS NULL THEN C.TEMSILCI_ACK ELSE A.TEMSILCI_ACK END) COLLATE DATABASE_DEFAULT AS TEMSİLCİ,
(CASE WHEN A.YAZ_ADRES IS NULL
THEN (B.IS_ADRES1 +' '+B.IS_ADRES2)
ELSE A.YAZ_ADRES END)
COLLATE DATABASE_DEFAULT AS YAZ_ADRES , A.SEHIR, A.PS, A.MEMO
FROM PROSPECT_MASTER A
LEFT OUTER JOIN YAZ..MARDATA.S_MUSTERI B
ON A.ID IN (B.TC_KIM_NO, B.VERGI_NO)
LEFT OUTER JOIN YAZ..MARDATA.T_TEMSILCI_KOD C
마지막 줄에 두 번째 쿼리 오류가 발생합니다.
이 요법에 적합한 구문은 무엇입니까?
가입 다른 테이블에 참조 일종의 링크해야 ON 절이있는 조인 기준을 지정해야합니다. – Andomar
은'on' 절을 잊어 –
@Soner - 조건이 없으면'C'의 모든 행이'A'와'B' 결과 집합의 모든 행과 일치합니다 - 그래서'C'가 비어 있지 않으면, 다시 설명하는 것은 교차 조인 또는 직교 곱입니다. 이것은 거의 항상 당신이 원하는 것이 아닙니다. –