首页 > 解决方案 > 使用 Inner Join/Group_Concat 更新两个表之间的 Inner Join 返回子查询错误

问题描述

我遇到了麻烦

Update Table Set 'Contains'=(Select Group_Concat(T1.FieldX) from Table T1
Inner Join Table T2
on T1.FieldA=T2.FieldA and
(T1.FieldX like concat('% ',T2.FieldX) or T1.FieldX like concat(T2.FieldX,' %'))
Group by T2.FieldX)

根据具有内部联接和 Group_Concat 的更新表“您不能在 FROM 子句中指定目标表”

所以决定更新另一个表,我可以使用结果。所以我拉了正在工作的 Select 并尝试了这个:

Update TableY Y
Inner Join Table Y2
On Y.Y2_ID=Y2.ID
Set FieldZ=
(Select Group_Concat(T1.FieldX) from Table T1
Inner Join Table T2
on T1.FieldA=T2.FieldA and
(T1.FieldX like concat('% ',T2.FieldX) or T1.FieldX like concat(T2.FieldX,' %'))
Group by T2.FieldX)

并得到

Subquery returns more than 1 row

假设错误是出于类似的原因,但无法确定那是什么。

标签: mysqljoinsubquery

解决方案


推荐阅读