2014-05-11 2 views
-1

4 테이블 Table1, Table2, Table3Table4을 갖는 쿼리가 있습니다.JOIN을 사용하여 OR 테이블을 표현하는 방법

Table1Table1와 FK 관계와
Table2 자식 테이블 ID를 갖는 마스터 테이블과 Tag라는 컬럼을 갖는다.
Table3Table1와 FK 관계와 자식 테이블과 Code
Table4라는 열이 Table1와 FK 관계와 자식 테이블이며,이 열은 Code2

가 지금은 쿼리가 다음과 논리를 표현하고자라는

Select Table1.ID 
From Table1 ... 
WHERE Table2.Tag IN(1,2,3,4) 
     AND (Table3.Code In (456,789) OR Table4.CODE2 in (123,897)) 

Table1Table2 사이에 가입 할 수 있음을 알고 있습니다. Tag val ue는 (1,2,3,4)입니다. 그러나 요구 사항을 달성하기 위해 Table3Table4에 참여하는 방법을 모르겠습니다. 당신은 그냥 계속 추가

+0

라고 table3/table4와 table1과 FK 관계가 있다고 말했을 것입니다. 그런 다음 table1을 참조하는 해당 열에 조인하십시오. 그렇지 않으면 table3과 table4에 대한 테이블 스키마를 표시하십시오. – Rahul

답변

0

는 각 자식 테이블의 외래 키 열이

당신이있는 거 쿼리이

Select Table1.ID 
From Table1 
JOIN Table2 ON Table2.FK_ID = Table1.ID 
JOIN Table3 ON Table3.FK_ID = Table1.ID 
JOIN Table4 ON Table4.FK_ID = Table1.ID 
WHERE Table2.Tag IN(1,2,3,4) 
AND (Table3.Code In (456,789) OR Table4.CODE2 in (123,897)) 

과 같아야 표 1의 키에 해당하는 조건에 따라 자식 테이블에 조인 그러나 FK_ID가 적절한 외래 키 필드로 바뀌면

+0

답변 해 주셔서 감사합니다. 나는 이것을 시도하고 알릴 것이다. – user3624772

+0

고마워요. – user3624772

관련 문제