以下 SQL 语句设置了一个用户变量 @id,然后我将在尾随子查询中使用该变量。我的问题是 @id 变量只设置为结果集中的第一个 items.id - 而不是“每行” - 所以子查询的结果对于主选择中的每一行都是相同的。有谁知道是否有办法为每一行重置@id 变量?
select
items.id
,items.title
,@id := items.id
,(
select
group_concat(x.y)
from
(
select
group_concat(ledger.stockcode) as y
from
ledger
where
@id = ledger.itemid
group by
ledger.stockcode
having
sum(ledger.stockqty) > 0
) as x
) as extras
from
items
where
items.id = 196