我需要将数据插入data_table
(表1)中alarm_status_log_table
(表2,整个事物)的一组列中,并将另一组数据插入data_table
(表1)来自channel
表(表3,只是名称和描述),从而完成data_table
(表1)。
但问题是,名称&我需要传递到data_table的描述列必须与它们对应的alarm_id
位于同一行。 alarm_id
与channel_id
表中的channel
相同,而Insert (name, description) from channel(table 3) into data_table(name, description) where channel_id = alarm_id
表恰好已经有我要发送给data_table的名称和说明。
基本上我想说:
A,B,3
C,D,5
A,D,57
我该怎么办?
答案 0 :(得分:1)
可以像这样进行更新JOIN:
UPDATE data_table a
INNER JOIN table3 b ON a.alarm_id = b.channel_id
SET a.name=b.name, a.description=b.description
如果您不想更新,是否可以加入表格?也许创建一个联合视图会更好;这样可以避免冗余的不一致数据。
答案 1 :(得分:0)
所有我需要做的就是使用VIEW,因为将来自两个表的数据重新排序到第三个表是非常棘手的,这是我用来获取我想要的视图的脚本:
SELECT channel.name, channel.description, alarm_status_log.*
FROM data2desk.alarm_status_log
LEFT JOIN data2desk.channel ON channel.channel_id=alarm_status_log.alarm_id
它就是诀窍:))