Whi*_*ant 11 mysql sql left-join
我有一个项目表,我有一个单独的表格,其中包含每个项目的个别购买.并非每件商品都已购买.我正在选择购买计数并将其与items表连接,其语句类似于以下内容:
SELECT items.name, purchases_count
FROM `items`
LEFT JOIN (SELECT sales.item_name, SUM(unit_sales) AS purchases_count
FROM sales GROUP BY item_name) sales ON sales.item_name = items.uid
Run Code Online (Sandbox Code Playgroud)
这导致数据类似于:
+------+-----------------+
| name | purchases_count |
|------+-----------------+
| Shoe | 12 |
| Belt | NULL |
+------+-----------------+
Run Code Online (Sandbox Code Playgroud)
当我想在上面过滤这个结果时,我的问题出现了purchases_count.如果我使用WHERE purchases_count < 10或类似的东西,根本没有销售记录的项目(即具有NULL价值的项目)将从搜索中排除.
我试图使用COALESCE(purchases_count,0) AS purchases_count哪个正确地将NULL记录设置为0,但在使用时它们仍然没有出现WHERE.我怀疑这COALESCE是在发生之后发生的WHERE.
我希望能够使用WHERE并包含NULL结果(作为零)来过滤此数字.有什么建议?
别名一般不适用的WHERE条款-尝试COALESCE(purchases_count,0) AS purchases_count_2用where purchases_count_2 < 10,看看我的意思.
where COALESCE(purchases_count,0) < 10 应该管用.
| 归档时间: |
|
| 查看次数: |
14338 次 |
| 最近记录: |