2011-09-26 72 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