最小的例子
我有一个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
但实际上我根本没有得到任何结果。我怎样才能在这里格式化我的查询?
好的,所以查询实际上按预期工作。我错过了我的实际设置中的一些东西,这使得它无法正常工作。 期望的结果是查找在另一个表指定的属性上具有最小值的项目,或者该属性完全未知的项目。
答案 0 :(得分:0)
它具有您想要的确切输出:
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