2016-08-09 3 views
0

프런트 엔드 웹 녀석이 SQL 심원에 던져 넣습니다. 다음은 현재 SQL 쿼리의 프로토 타입입니다 :SQL - Select into into select (여러 열)

INSERT INTO table (table column) 
SELECT ad.val1, web.val2, ad.val3 
FROM ad 
LEFT JOIN web 
ON ad.val 4 = web.val4 

우리는 최근 web.val5 열을 추가 한은 우리가 web.val4

내가 시도로이 같은 열에 정보의 다음을 삽입 할 ALL 절 사용 :

INSERT INTO table (table column) 
SELECT ad.val1, web.val2, ad.val3 
FROM ad 
LEFT JOIN web 
ON ad.val 4 = web.val4 
AND ad.val4 = web.val5 

하지만 계속 0 (또는 NULL?)이 표시됩니다. LEFT JOIN에 추가 할 수있는 특정 절이있어 동일한 테이블 내의 서로 다른 열에서 두 개의 서로 다른 값을 동일시 할 수 있습니까? 죄송합니다. 혼란 스럽다면 간신히 이해합니다.

+1

샘플 데이터 및 예상 결과는 도움이 될 것입니다. – sgeddes

답변

0

당신은 두 번에 합류 고려하고 여기에 약간의 추측

INSERT INTO table (table column) 
SELECT ad.val1, web.val2, ad.val3 
FROM ad 
LEFT JOIN web 
ON ad.val4 = web.val4 
LEFT JOIN web w   //second join 
ON ad.val4 = w.val5 
0

처럼 해당 조건과 일치하지만 문제를 이해한다면, 당신의 and 기준은 그것이 null 값을 반환하고있다 할 수 있습니다. 대신 원하는 것은 or 또는 in :

INSERT INTO table (table column) 
SELECT ad.val1, web.val2, ad.val3 
FROM ad 
    LEFT JOIN web ON ad.val4 IN (web.val4, web.val5)