gpt4 book ai didi

mysql - 在 WHERE IN 条件之外返回的行

转载 作者:行者123 更新时间:2023-11-29 06:23:40 28 4
gpt4 key购买 nike

我有一个像这样的 SQL 查询:

select gift.id as giftId, gift.title, count(vouchercode.id) as stock 
from gift
inner join vouchertemplate
left join vouchercode
on gift.voucherTemplate = vouchertemplate.id
and vouchertemplate.id = vouchercode.template
and vouchercode.given = 0
and gift.id in (5, 6, 7)
group by gift.id

我希望所有行的 gift.id 都是 5,6,7 之一,但我也得到了 4 的行.这是为什么?

最佳答案

您已离开加入。你需要:

select gift.id as giftId, gift.title, count(vouchercode.id) as stock 
from gift
inner join vouchertemplate
left join vouchercode
on gift.voucherTemplate = vouchertemplate.id
and vouchertemplate.id = vouchercode.template
and vouchercode.given = 0
where gift.id in (5, 6, 7)
group by gift.id

当您将其置于 JOIN 条件时 - 它仅用于连接。因此,您得到 4。你必须把它放在 WHERE 子句中。

如果该查询不符合您的业务逻辑,请详细说明您需要什么样的结果重新设计该查询。

关于mysql - 在 WHERE IN 条件之外返回的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32154036/

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