mysql筛选器空和

gojuced7  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(330)

最小示例
我有一个 table1 有两列( id , name )

1 asdf
2 fdsa
3 qwerty
4 ytrewq

我也有一个 table2 有三列( id , ref , num )

1 1 0.1
2 1 5.0
3 1 -3.9
4 2 2.4
5 2 -2.3
6 3 1.7

以下查询:

SELECT
  table1.id,sum(num),
  table1.name as anumber
FROM table1
LEFT JOIN table2 ON table1.id=table2.ref
GROUP BY table1.id;

结果如下:

1 1.2 asdf
2 0.1 fdsa
3 1.7 qwerty
4 NULL ytrewq

我尝试的查询:

SELECT
  table1.id,sum(num) as anumber,
  table1.name
FROM table1
LEFT JOIN table2 ON table1.id = table2.ref
GROUP BY table1.id
HAVING anumber is null or anumber >= 1.0;

我的期望是看到这些结果

1 1.2 asdf
3 1.7 qwerty
4 NULL ytrewq

但实际上我一点结果都没有。我应该如何在这里设置查询的格式?
好的,所以查询实际上按预期工作。我从我的实际设置中遗漏了一些使它无法工作的东西。所需的结果是查找在另一个表指定的属性上具有最小值的项,或者在该属性完全未知的情况下。

dkqlctbz

dkqlctbz1#

它具有您想要的精确输出:

SELECT
  table1.id,sum(table2.num) as t2,
  table1.name as anumber
FROM table1
LEFT JOIN table2 ON table1.id=table2.ref
GROUP BY table1.id
having t2 is null or t2 >= 1.0;

输出

id | t2 | anumber
1    1.2   asdf
3    1.7   qwerty
4    NULL  ytrewq

相关问题