2014-02-12 2 views
0

if 문이 조인이 필요한지 여부를 결정하는 방법이 있습니까?내부 조인 내의 문

내가 쿼리하는 데이터에 외래 키가 여러 개 있기 때문에 필요합니다. 외래 키 중 하나가 null 인 경우 SQL 문을 변경해야합니다. null 값을 인식 할 수있는 명령문을 작성하고 싶습니다.

이 내가하고 싶은 것입니다 ...

select a.*,b.* from table1 a inner join table2 b on a.id = b.id 
if a.InspectorID is not null 
{inner join table3 c on a.InspectionID = c.id} 
else do nothing... 
+4

당신은이'왼쪽 조인을 사용 할 수 없습니다 '? 아니면 요점을 놓치고 있습니까? – christiandev

+1

동적 SQL을 사용하지 않고 쿼리의 * 모양 * (사용 된 테이블, 열 수, 결과 집합의 열 이름 및 유형)을 변경할 수 없습니다. 그러나이 경우, 요점은 무엇입니까?'c'에서 어떤 열도 사용하지 않습니까? –

+0

왼쪽 join을 완전히 이해하지 못했을 것 같네요 ... christiandev thanks –

답변

1

이 밖으로 시도 ... 만약 내가 제대로 이해하고

select a.*,b.* from table1 a inner join table2 b on a.id = b.id 
left join table3 c on a.InspectionID = c.id 
where a.InspectorID is null or a.InspectionID = c.id 
1

조건부 테이블을 조인 할 수 있을지는 잘 모르겠지만, T-SQL에서 "만약"문은 호출되어 case입니다.

1

무엇 union

select a.*,b.* 
from table1 a 
inner join table2 b on a.id = b.id 
inner join table3 c on a.InspectionID = c.id 
union all 
select a.*,b.* 
from table1 a 
inner join table2 b on a.id = b.id 
where a.InspectionID is null 
1

, 당신은 사용할 수 있습니다

select a.*,b.*,c.fields 
from table1 a inner join table2 b on a.id = b.id 
left join table3 c on a.InspectionID = c.id 
where a.InspectionID IS NOT NULL