2014-01-26 3 views
-1

필자는 필요할 때만 열을 반환하는 방법을 찾으려고합니다.조건부 왼쪽 결합

데이터는 것이다에만 1_finance_add_details 및 주소 e 테이블에 존재하는 경우 t.trans_type=2

SELECT t.*, 
a.company, 
a.house_number, 
a.flat_number, 
a.house_name, 
a.address1, 
a.address2, 
a.address3, 
a.town, 
a.county, 
a.post_code, 
a.country, 
f.*, 
e.company, 
e.house_number, 
e.flat_number, 
e.house_name, 
e.address1, 
e.address2, 
e.address3, 
e.town, 
e.county, 
e.post_code, 
e.country 
FROM 1_transactions t 
LEFT JOIN addresses a ON a.id=t.fk_addresses_id 
LEFT JOIN 1_finance_add_details f ON t.id=f.fk_transactions_id 
LEFT JOIN addresses e ON e.id=f.employ_fk_addresses_id 
WHERE trans_location=1 AND t.id=19; 

답변

3

이 원하는 결과이지만, 그냥 같이 가입 왼쪽에 다른 조건을 추가 할 수 있는지 확실하지 :

FROM 1_transactions t 
LEFT JOIN addresses a ON a.id=t.fk_addresses_id 
LEFT JOIN 1_finance_add_details f ON t.id=f.fk_transactions_id 
LEFT JOIN addresses e ON e.id=f.employ_fk_addresses_id AND t.trans_type=2 
WHERE trans_location=1 AND t.id=19; 

참고 :!이 유형의 모든 t에 주소 전자의 NULL의 필드를 렌더링 할

+0

= 2. 아주, 내가 아니었다 열만 필요하고 다른 것은 사용하지 않고 데이터를 가져 오려고합니다. –

+0

나는 당신이 거기에서 무슨 뜻인지 잘 모르겠다. 아마도 당신이 당신의 질문에서 기대하는 모의 결과물을 제공한다면 당신의 질문을 더 명확히 해줄 것이다. – har2vey