MySQLメモ。
2つのテーブルを結合してSELECT内で計算を行う時、NULLが存在すると算出できない。
そんな場合は、IFNULL関数を使って解決。
(SQLメモ)IFNULL関数でNULL混在時の計算を解決する
【例】table_aとtable_bを結合し、count_1とcount_2の合計をtotalとする。
(ダメなSQL)IFNULL関数を使わずに計算
SELECT
a.id,
a.count_1,
b.count_2,
a.count_1 + b.count_2 AS 'total'
FROM
table_a AS a
LEFT OUTER JOIN table_b AS b on (b.id = a.id)
↓↓↓ 結果 ↓↓↓
count_2がNULLのid:2のtotalが得られない。
(オッケーのSQL)IFNULL関数を使って計算
SELECT
a.id,
a.count_1,
b.count_2,
IFNULL(a.count_1, 0) + IFNULL(b.count_2, 0) AS 'total'
FROM
table_a AS a
LEFT OUTER JOIN table_b AS b on (b.id = a.id)