【发布时间】:2013-03-31 13:15:27
【问题描述】:
我的数据库中有一个 Products 表和一个 ProductionReport 表。
ProductionReport 表捕获每个产品的每周生产信息。我的应用会报告这些信息。
表结构
生产报告
productionreportid、productid、日期、数量
1, 1, 2013-04-08, 50
2, 2, 2013-04-08, 12
产品
产品ID,产品名称
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 子句针对连接表中的列。如果是这样的话,这显然是我的逻辑严重缺陷,但我不知道该怎么办。
有什么建议吗?
【问题讨论】: