MYSQL UPDATE查询多个值

时间:2019-01-02 04:52:57

标签: mysql

试图从另一个表中的值更新一个表。这些表以一个人的名字和姓氏联接。问题是我们有重复的记录,我们试图在其中为每个记录连接一个值,但是当查询结束时,它只会找到第一条记录。表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

感谢您的帮助!

2 个答案:

答案 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 
相关问题