gpt4 book ai didi

mysql - where子查询定义的字段上的子句

转载 作者:行者123 更新时间:2023-12-01 00:27:38 25 4
gpt4 key购买 nike

我有这个查询,它显示一些属性并计算从另一个表中引用它的次数:

SELECT 
p.id,p.propName
(
SELECT COUNT(*) FROM propLoc WHERE propLoc.propID = p.id
) AS number
FROM property as p
WHERE p.category != 'natural'

这会生成一个很好的表格,其中包含我要过滤的所有信息:

id | propName | number
3 | Name 1 | 3
4 | Name 2 | 1
5 | Name 3 | 0
6 | Name 4 | 10
etc etc

我现在想过滤掉 number <= 0 的属性所以我尝试添加一个 AND number > 0 但是它对 Unknown column 'number' in 'where clause' 使用react显然你不能过滤一个指定的名字子查询?

我怎样才能实现我的目标?

最佳答案

您拥有的内联子查询等同于 LEFT JOIN。将您的查询重写为 Join,并使其成为 INNER 查询。无论是这种方式:

SELECT p.id
, p.propName
, grp.number
FROM property AS p
INNER JOIN
( SELECT propID
, COUNT(*) AS number
FROM propLoc
GROUP BY propID
) AS grp
ON grp.propID = p.id
WHERE p.category <> 'natural' ;

或者这个:

SELECT p.id
, p.propName
, COUNT(*) AS number
FROM property AS p
INNER JOIN propLoc
ON propLoc.propID = p.id
WHERE p.category <> 'natural'
GROUP BY p.id ;

关于mysql - where子查询定义的字段上的子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11429097/

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