2012-09-12 7 views
0

열 값이 지정된 텍스트와 일치 할 때문을 Sql 쿼리 내에서 사용하여 여러 테이블을 조인하려고합니다.IF ELSE 문을 사용하여 여러 테이블 조인

내가 체크했을 때 coloumnName='Value' 그러면 추가 테이블에 가입하고 싶습니다. 그렇지 않으면, 나는 그것에 가입하고 싶지 않다. 이것이 가능한가? 어떻게해야합니까?

당신은 조건부 무조건 외부 조인을 사용하여 당신은 모든 테이블에 가입해야 테이블에 참가할 수 없습니다
+0

그리고 조인 된 테이블이있는 행과없는 테이블의 행에 대한 결과 집합에 포함해야하는 필드는 무엇입니까? – raina77ow

+1

"질문"이 매우 형편 없습니다. 첫째, 의문의 여지가 없습니다. 둘째, 입력 내용과 원하는 결과를 말해야합니다. 문제를 해결하기위한 시도가 있어야합니다. –

+0

SQL 자체가 아닌 응용 프로그램을 통해서만이 작업을 수행 할 수 있습니다. 자체 쿼리 빌더 논리를 작성해야합니다. – Bill

답변

1

는 가입 기준에 조건을 사용하여 다음과 같이 반환 된 데이터 세트에서 원하는 값을 선택 :

select r.id, p.name, a.name, t.name 
from requests r 
left outer join person p on r.type='person' and r.item_id = p.id 
left outer join animal a on r.type='animal' and r.item_id = a.id 
left outer join thing t on r.type='thing' and r.item_id = t.id 

위 예제는 사람, 동물 또는 사물을 참조하는 item_id이있는 "요청"을 보여줍니다. type 열은 참조되는 테이블을 결정합니다.

결과에 name에 대해 세 개의 열이 있으며 그 중 하나는 null이됩니다.

+0

감사합니다. dasblinkenlight – guri

관련 문제