社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

如果不工作,mysql计数为0

Ben Kao • 5 年前 • 1275 次点击  

通过使用left join,我试图计算现有购买的形状数(如果没有购买,则为0)。我还按形状类型对它们进行分组。但我得到的结果都是0。

表格形状:

id  shape     colour
1   circle    red
2   rectangle blue
3   triangle  green
4   star      yellow
5   cross     purple
6   moon      orange

购买桌型:

id  price
3   3.24
2   1.95
3   5.42
4   6.32
5   4.21
1   7.45
3   5.97
3   4.31
1   6.32
4   7.82

SQL语言: SELECT shapes.shape, COUNT(IF(shape_purchase.price != NULL, 1, NULL)) FROM shapes LEFT JOIN shape_purchase ON shapes.id = shape_purchase.id GROUP BY shapes.id &这里怎么了?

结果:

shape      COUNT(IF(shape_purchase.price != NULL, 1, NULL))
circle     0
rectangle  0
triangle   0
star       0
cross      0
moon       0

我叫shape_purchase.price有什么问题吗?还是左联会让事情更复杂?

仅供参考, SELECT * FROM shapes LEFT JOIN shape_purchase ON shapes.id = shape_purchase.id 看起来像这样:

id  shape      colour  id    price
3   triangle   green   3     3.24
2   rectangle  blue    2     1.95
3   triangle   green   3     5.42
4   star       yellow  4     6.32
5   cross      purple  5     4.21
1   circle     red     1     7.45
3   triangle   green   3     5.97
3   triangle   green   3     4.31
1   circle     red     1     6.32
4   star       yellow  4     7.82
6   moon       orange  NULL  NULL
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46372
 
1275 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Gordon Linoff
Reply   •   1 楼
Gordon Linoff    5 年前

几乎可以与 NULL 无效的 --被认为是假的。包括不等式。这就是为什么sql IS NULL IS NOT NULL .

但是,我建议您将代码编写为:

SELECT s.shape, COUNT(sp.price)
FROM shapes s LEFT JOIN
     shape_purchase sp
     ON s.id = sp.id
GROUP BY s.id;

COUNT(<expression>) 算不算- 无效的 价值观。不需要条件逻辑。