0

私は2つのテーブルを持っています。営業兼生産者。両方のテーブルに存在するデータの一部は共通です。だから私がやりたいことは、tbl prodctlist データが tbl sales に存在する tbl productlist の選択されたフィールドを更新したいということです。以下の次のクエリを使用しましたが、問題は、produclist からのデータが sales に存在しない場合、null になることです。私が探しているのは、tbl productlist のデータが tbl sales に存在しない場合、null にならず、代わりに更新前の値が同じままであることです

mysql_query("UPDATE productlist 
SET pleft=pleft+(SELECT SUM(qty) FROM sales 
WHERE (sales.name = productlist.pdesc) 
AND (sales.name1 = productlist.pdesc1))"); 
4

2 に答える 2

0

IFNULL関数を使用できます。

mysql_query("UPDATE productlist SET pleft=pleft + IFNULL( (SELECT SUM(qty) FROM sales WHERE (sales.name = productlist.pdesc) AND (sales.name1 = productlist.pdesc1), 0)"); 

また、qty フィールドが NULL になる可能性がある場合は、次のようにすることをお勧めします。

mysql_query("UPDATE productlist SET pleft=pleft + IFNULL( (SELECT SUM(IFNULL(qty,0)) FROM sales WHERE (sales.name = productlist.pdesc) AND (sales.name1 = productlist.pdesc1), 0)"); 
于 2013-10-09T19:45:30.500 に答える