2013-01-02 2 views
0

Mysql 쿼리에서 3 개의 테이블 (table1 & table3)을 조인 하려는데 2 개의 테이블 (table1 & table2)에서 일치하는 데이터를 가져오고 자하는 공통 열 3 개의 테이블 (예 : 'PID')에 존재합니다.0 또는 null을 반환 할 때 mysql에서 3 테이블에 합류

이 세 테이블을 결합 할 때 table1에 주어진 날짜 ('2012-12-27')가있는 데이터가 없습니다. 그러면 전체 빈 행이 반환됩니다. 여기서는 table2와 일치하는 데이터를 가져 오려고합니다. 다른 테이블에 일치하는 데이터가없는 경우 'ZERO'또는 'NULL'. table1 .. 전체 빈 행 대신. 여기

SELECT * FROM table3 b 
LEFT JOIN table1 r ON r.PID = b.PID 
LEFT JOIN table2 a ON ab.PID = b.PID 
WHERE b.Name ='stallion' AND r.Date = '2012-12-27' AND a.Date = '2012-12-27' 
; 
+0

당신이 원하는 결과 다음 몇 가지 샘플 데이터를 게시 할 수 있습니까? – Taryn

답변

0

두 개를 사용하는 다른 다음 UNION을 문을 가입 .. 완전한 빈 행을 반환 내가하려고했던 코드입니다.

+0

안녕하세요 Turcia .. 감사합니다. 귀중한 제안을 위해 :) 그러나 AndreKR의 답변으로 제 문제가 깨끗하게 분류되었습니다. 귀하의 제안도 확실히 이행하십시오. 멋진 하루 되세요 !! – user1943364

0

table1 (r)에 데이터가없는 행은 r.Data = NULL이므로 WHERE 조건에 의해 필터링됩니다. 당신은 ON 절에 조건을 당신의 WHERE 조건에 OR r.Date IS NULL를 추가하거나 이동해야합니다

SELECT * FROM table3 b 
LEFT JOIN table1 r ON r.PID = b.PID AND r.Date = '2012-12-27' 
LEFT JOIN table2 a ON a.PID = b.PID AND a.Date = '2012-12-27' 
WHERE b.Name ='stallion'; 
+0

안녕하세요 AndreKR, THANKYOU 매우 많이 .. :) 당신은 내 문제를 해결했습니다. 내 코드에서 귀하의 수정 사항은 훌륭합니다. 당신의 도움은 대단히 감사합니다 !! – user1943364

관련 문제