为什么这不起作用:
SELECT *
FROM `group` AS G,
(SELECT sum(`count`)
FROM `counter`
WHERE `id` IN (G.`ids`)) t
WHERE G.id = '1'
LIMIT 1;
我有问题将group.ids值传递给子查询IN
子句。
group.ids字段的值为:
70,194,458,459,570,470
这可能吗?
我收到了这个错误:
'where子句'中的未知列'G.ids'
答案 0 :(得分:0)
以下是一个可以解决您问题的查询,这里基本上您选择group
的所有字段,count
只counter
,FIND_IN_SET()
匹配{{1}使用逗号分隔的String中的任何值。
c.id
Here是您应该知道的有关SELECT G.*, (SELECT sum(`count`)
FROM `counter` c
WHERE FIND_IN_SET(c.`id`, G.`ids`))
FROM `group` G
WHERE G.id = 1
LIMIT 1
的一些额外信息。