gpt4 book ai didi

mysql - 从 LEFT JOIN 设置 NULL 列的默认值并使用 WHERE 进行过滤

转载 作者:IT王子 更新时间:2023-10-29 00:27:54 32 4
gpt4 key购买 nike

我有一个项目表,还有一个单独的表,其中包含每个项目的单独购买。并非每件商品都已购买。我正在选择购买计数,并使用类似于以下的语句将其与项目表连接起来:

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

这导致数据类似于:

+------+-----------------+
| name | purchases_count |
|------+-----------------+
| Shoe | 12 |
| Belt | NULL |
+------+-----------------+

当我想在 purchases_count 上过滤此结果时,我的问题出现了.如果我使用 WHERE purchases_count < 10或类似的东西,完全没有销售记录的项目(即具有 NULL 值的项目)被排除在搜索之外。

我尝试使用 COALESCE(purchases_count,0) AS purchases_count正确设置 NULL记录为 0,但使用 WHERE 时仍未出现.我怀疑 COALESCEWHERE 之后发生.

我希望能够使用 WHERE 过滤此数字并包括 NULL如果可能的话,结果(作为零)。有什么建议吗?

最佳答案

别名通常不适用于 WHERE条款 - 尝试 COALESCE(purchases_count,0) AS purchases_count_2where purchases_count_2 < 10明白我的意思。

where COALESCE(purchases_count,0) < 10应该可以。

关于mysql - 从 LEFT JOIN 设置 NULL 列的默认值并使用 WHERE 进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8538063/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com