0

次のような質問:

リンクされた列が null になる可能性がある 2 つのテーブルから選択する

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'

どの部分が間違っていますか? 結合またはどこで?または、他の何か?

4

3 に答える 3

2

交換

`t2`.`product` = NULL

`t2`.`product` IS NULL

こちらをご覧ください

于 2012-06-25T07:50:43.213 に答える
1

t2.product = NULLは常に false です。t2.product IS NULL代わりに使用してください。

于 2012-06-25T07:48:57.743 に答える
0

t2.product が null の場合、文字列 'p1' とは常に異なります。and の必要性がわかりません。

于 2012-06-25T07:50:19.383 に答える