あぼかどブログ > Web > PHP > (SQLメモ)NULL混在時の計算はIFNULL関数を使う

(SQLメモ)NULL混在時の計算はIFNULL関数を使う

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)

↓↓↓ 結果 ↓↓↓
IFNULL関数を使わない結果
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)

↓↓↓ 結果 ↓↓↓
IFNULL関数を使った結果
id:2のtotal:6が得られる。

【前後の記事】
«
 
»
 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です