MYSQL NULLに0を代入したい
解決したいこと
プログラミング初心者ですがよろしくお願いします。
簡単な在庫管理表を left join、 group by(sum)、 ifnull関数を使って作成中です。
何とかテーブル同士の結合や加算までは出来たみたいなのですが、どうしてもカラム内の
NULLを0表示に変えることが出来ずに暗礁に乗り上げた状態です。
どこにifnullを使用したら良いかがわかりません、解決方法を教えて下さい。
PHPでmysqlにクエリを投げてます。
MYSQLのバージョン【5・7・34】
PHP のバージョン【7・3・1】
Product_Tbl
UnitIn_Tbl
UnitOut_Tbl
上記tblの結合です。
発生している問題・エラー
エラーメッセージは出ないのですがNULLの部分が0に変わりません。
今現在の結果です。
+-----------+-------------+-----------+------------+---------+----------+-------+
| ProductId | ProductName | UnitPrice | UnitNumber | Unit_In | Unit_Out | Total |
+-----------+-------------+-----------+------------+---------+----------+-------+
| 101 | 商品A | 200 | 50 | 60 | 35 | 75 |
| 102 | 商品B | 250 | 30 | 45 | 50 | 25 |
| 103 | 商品C | 150 | 60 | 30 | NULL | NULL |
| 104 | 商品D | 400 | 80 | NULL | 55 | NULL |
| 105 | 商品E | 300 | 110 | NULL | NULL | NULL |
+-----------+-------------+-----------+------------+---------+----------+-------+
該当するソースコード
$sql="SELECT
Product_Tbl.ProductId as ProductId,
Product_Tbl.ProductName as ProductName,
Product_Tbl.UnitPrice as UnitPrice,
Product_Tbl.UnitNumber as UnitNumber,
UnitIn.UnitIn_Sum as Unit_In,
UnitOut.UnitOut_Sum as Unit_Out,
(Product_Tbl.UnitNumber+UnitIn.UnitIn_Sum-UnitOut.UnitOut_Sum) as Total
FROM Product_Tbl
LEFT JOIN(SELECT IFNULL (SUM(UnitIn_Tbl.UnitInNumber),'0') as UnitIn_Sum,
UnitIn_Tbl.ProductInId
FROM UnitIn_Tbl GROUP BY UnitIn_Tbl.ProductInId) as UnitIn on UnitIn.
ProductInId = Product_Tbl.ProductId
LEFT JOIN(SELECT IFNULL (SUM(UnitOut_Tbl.UnitOutNumber),'0') as UnitOut_Sum,
UnitOut_Tbl.ProductOutId
FROM UnitOut_Tbl
GROUP BY UnitOut_Tbl.ProductOutId) as
UnitOut on UnitOut.ProductOutId = Product_Tbl.ProductId
ORDER BY ProductId";
自分で試したこと
色んなサイトを検索しましたが、答えにたどり着けず投稿に至りました。
よろしくお願いいたします。