LEFT JOIN時のWHERE文
MySQL文で、LEFT JOINを使用すると、指定したフィールドを条件にテーブルを結合してくれるが、その際にWHERE文で動きが特殊なので記載しときます。
例えば、こんな文。 SELECT * FROM?tb1 LEFT JOIN?tb2?ON?tb1.id = tb2.id WHERE tb2.name = NULL;
この場合、結合したテーブル tb2 のnameフィールドがNULLの場合、情報を呼び出す感じになっているが、実際データとして、NULLが入っていないと、抽出されるデータは存在しない状態になってしまう。
それでは困るのでなんとかならないか検索したところ、グッドな関数を発見。
IFNULL ってやつです。
これを使うとこんな感じ。 SELECT * FROM?tb1 LEFT JOIN tb2 ON?tb1.id = tb2.id WHERE IFNULL(tb2.name,0) = '0';
要は、NULLの場合、第二引数に指定している0に置き換えてやり、その置き換えたものをWHERE文で判断している形になります。