gpt4 book ai didi

sql - 在 where 子句中过滤右连接数据

转载 作者:行者123 更新时间:2023-12-02 17:50:19 26 4
gpt4 key购买 nike

我有一个简单的表结构,其中每个项目行都有一个状态。我正在寻找的是查询每个状态并计算有多少项目使用该状态。可能不会使用所有状态,因此我需要考虑空值和零计数。

我的表结构如下:

Table: Items
Id, State_id, Text, Status

Table: States
State_id, Name

这是我的:

SELECT   statealias1_.State_id as y0_,
count(this_.Id) as y1_
FROM Items this_
right join States statealias1_
on this_.State_id = statealias1_.State_id
WHERE (not (statealias1_.State_id in (5, 6, 7, 8))
or statealias1_.State_id is null)
and (this_.Status = 'InProgress'
or this_.Status is null)
GROUP BY statealias1_.State_id;

此查询在包含所有状态时有效(有 8 个状态,我排除了后半部分)。我不确定为什么这不返回我的所有状态,无论空值如何,因为我似乎包括空值。

最佳答案

select i.State_id as y0_, count(i.Id) as y1_
from Items i
left join States s on i.State_id = s.State_Id and i.Status = 'InProgress'
group by i.State_id

关于sql - 在 where 子句中过滤右连接数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9194236/

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