从两个外部连接表中选择一个可能的空列

时间:2012-06-25 07:45:46

标签: mysql left-join outer-join

类似的问题:

select from two tables where linked column can be null

column1tab1 column2tab1 order_number product amount
 xx            yy            123      p1      2
 xx            yy            456      p3      4
 xx            yy            NULL    NULL    NULL
 xx            yy            789      p2      1
 etc...

海报的输出如上所述。但是,当我添加WHERE product ='p1'时,或者WHERE product = NULL时,都返回一个空集。最终,我想要

SELECT            *
FROM              `t1`
  LEFT OUTER JOIN `t2`
  ON              (`t1`.`id` = `t2`.`id2`)
WHERE             `t2`.`product` = NULL
  AND             `t2`.`product` <> 'p1'

我做错了哪一部分?加入还是在哪里?或其他什么?

3 个答案:

答案 0 :(得分:2)

替换

`t2`.`product` = NULL

`t2`.`product` IS NULL

See here

答案 1 :(得分:1)

t2.product = NULL总是假的。请改用t2.product IS NULL

答案 2 :(得分:0)

如果t2.product为null,则它总是与字符串'p1'不同。我认为不需要和。