データベースに Products テーブルと ProductionReport テーブルがあります。
ProductionReport テーブルは、各製品の週ごとの生産情報をキャプチャします。私のアプリはこの情報を報告します。
テーブル構造
制作報告
productionreportid、productid、日付、数量 1、1、2013
年 4 月 8 日、50
2、2、2013 年 4 月 8 日、12
製品
productid、productname
1、スキン クリーム
2、ピーナッツ オイル
3、バス ソルト
4、シャンプー
マイ ページでは、すべての製品 ( SELECT productid, productname FROM Products
) を一覧表示し、ProductionReport テーブルに結合するグリッドビューを使用して、ユーザーが更新できる週のすべての製品と生産値のリストを表示します。
私の問題は、GridView を設定するための SQL クエリです。現在、両方のテーブルに結合された値がある行のみを取得します。
SELECT pro.productname, pr.productionreportid, IFNULL(pr.qty, 0) qty
FROM Products pro
LEFT JOIN ProductionReport pr ON pro.productid = pr.productid
WHERE DATE(pr.date) = '2013-04-08'
したがって、上記のデータを考えると、次の結果セットが返されることを期待しています
スキンクリーム, 1, 50
ピーナッツオイル, 2, 12
バスソルト, 0, 0
シャンプー, 0, 0
残念ながら、返されるのは最初の 2 行だけです。これは、結合されたテーブルの列を対象とする WHERE 句が原因だと思います。もしそうなら、明らかに私の論理の重大な欠陥ですが、どうすればよいかわかりません。
助言がありますか?