我的sql数据库中有3个表。
这是我的数据表:
table1 ID WORD 1 a 2 b 3 c 7 o 14 z 32 q 57 i table2 ID FORWORD 1 apple 1 orange 3 disc1 3 disc2 3 disc3 14 book 32 letter1 32 letter2 32 letter3 57 keyboard 57 mouse table3 ROWID WORD NAME 1 a NULL 2 b NULL 3 c NULL 4 o example, example1 5 z NULL 6 q window, window1 7 i NULL
table1和table2具有相同的ID。 table1和table3有WORD。 我想更新表3中的NAME列中的数据,并获得如下结果:
table3 ROWID WORD NAME 1 a apple, orange 2 b NULL 3 c disc1, disc2, disc3 4 o NULL 5 z book 6 q letter1, letter2, letter3 7 i mouse
请帮助解决这个问题。
答案 0 :(得分:1)
我认为您正在寻找UPDATE
JOIN
,使用GROUP_CONCAT
:
update table3 t3
join (
select t1.word, group_concat(t2.forward order by t2.forward separator ', ') name
from table1 t1
left join table2 t2 on t1.id = t2.id
group by t1.word
) t on t3.word = t.word
set t3.name = t.name;
请注意,第7行应返回键盘,鼠标为table2,其中2条记录为57。
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat