试图从另一个表中的值更新一个表。这些表以一个人的名字和姓氏联接。问题是我们有重复的记录,我们试图在其中为每个记录连接一个值,但是当查询结束时,它只会找到第一条记录。表1和表2都包含约2万条记录。
当前查询
UPDATE table1, table2 SET table1.value = CONCAT(table1.pet,",",table2.pet)
WHERE table1.fName = table2.fName AND table1.lName = table2.lName;
表1示例
fName lName pet
===================
John Doe bird
Jane Doe bird
表2示例
fName lName pet
===================
John Doe dog
Jane Doe dog
John Doe fish
John Doe cat
表1中的预期结果
fName lName pet
===================
John Doe bird,dog,fish,cat
Jane Doe bird,dog
我们目前得到的结果
fName lName pet
===================
John Doe bird,dog
Jane Doe bird,dog
感谢您的帮助!
答案 0 :(得分:1)
您可以尝试以下操作-使用group_concat()
函数
update Table1 a
join
(
select fName,lName, group_concat(pet) as pet1
from Table2
group by fName,lName
)b on a.fName=b.fName and a.lName=b.lName
set a.pet=concat(a.pet,',',pet1)
答案 1 :(得分:0)
您也可以尝试
UPDATE Table1 X SET
X.Column1=Y.column2
from(
select Column2 from tabel2
where column3=column4
) Y where X.column4=Y.column4