2011-09-26 2 views
0

필드에 하나의 값 또는 다른 값이 있으면 다른 테이블에 조인 할 쿼리가 있습니다. 그 일을 어떻게 하죠? 나 또는 진술을 사용해야합니까? (심지어 가능합니까?) 또는 IN 문으로 충분합니까? MySQL - 또는 성명을 사용하여 가입 하시겠습니까?

SELECT table1.field1,table2.field2 FROM table1 
INNER JOIN table2 ON table1.field1 = table2.field2 OR table2.field2 = 0 

은 기본적으로 테이블 2의 필드는 테이블 1 또는 숫자 0에서 경기를 할 수 있습니다, 나도 나에 경기를 만들고 싶어. 그래서 table1 필드와 table2 필드에서 일치하는 것이 없지만 table2 필드에 0이 있으면 테이블에 가입하려고합니다. 희망은 그 말이 맞습니다. 아니면이게 더 효과적일까요?

SELECT table1.field1,table2.field2 FROM table1 
INNER JOIN table2 ON table1.field1 IN(table2.field2,0) 
+0

값이 0 인 행이 많은 경우 모두에 참여 하시겠습니까? –

답변

2

나는 다소 다르게 생각하고 table2으로 시작합니다.

SELECT table1.field1, table2.field2 
    FROM table2 
     LEFT JOIN table1 
      ON table2.field2 = table1.field1 
    WHERE table2.field2 = 0 
     OR table1.field1 IS NOT NULL