我的数据库中有一个 Products 表和一个 ProductionReport 表。
ProductionReport 表捕获每个产品的每周生产信息。我的应用程序将报告此信息。
表结构
生产报告
productionreportid, productid, 日期, 数量
1, 1, 2013-04-08, 50
2, 2, 2013-04-08, 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
不幸的是,我得到的只是前两行。我相信这是因为 WHERE 子句针对连接表中的列。如果是这样的话,这显然是我的逻辑上的一个严重缺陷,但我不知道该怎么办。
有什么建议么?