即使equals不返回任何数据,也返回所有行(Oracle SQL)

时间:2017-10-11 16:06:50

标签: sql oracle

我希望能够查询2个表,并最终返回2列中的所有内容,即使参数不匹配也是如此。检查表未填充的位置,DO_TABLE是否有REF,CO_TABLE是否有ORDER_NO。每个REF应该有一个ORDER_NO

所以,这会返回所有内容:

SELECT a.REF, b.ORDER_NO
FROM DO_TABLE a, CO_TABLE b
WHERE a.REF=b.ORDER_NO

结果是

REF         |ORDER_NO  
06191796    |06191796  
06191794    |06191794  
06191678    |06191678  
06191797    |06191797  
06191806    |06191806  

但我希望它在ORDER_NUMBER 不是时显示REF,所以如果第2和第4 REF没有ORDER_NO,它看起来像:

REF         |ORDER_NO  
06191796    |06191796  
06191794    |  
06191678    |06191678  
06191797    |  
06191806    |06191806  

任何帮助,非常感谢!

TJ

1 个答案:

答案 0 :(得分:1)

从不FROM子句中使用逗号。 始终使用正确的,明确的JOIN语法。如果你这样做,你会知道外连接:

SELECT a.REF, b.ORDER_NO
FROM DO_TABLE a LEFT JOIN
     CO_TABLE b
     ON a.REF = b.ORDER_NO;

瞧!