我正在尝试将数据从一个表复制到另一个表.T1,T2是两个表都正确设置都具有UQ的PK。特别是我想将值R放入GZHTable3的Combined_Data表中。 R是非唯一的,当T1.Aid = T2.Gid时必须是,所以我有:
INSERT INTO Combined_Data (R)
SELECT T2.R
FROM GZHTable3 as T2
JOIN Combined_Data as T1 ON T1.Aid = T2.Gid;
Aid和Gid是他们各自桌子的UQ和PK。据我所知,它是反对的,因为Aid和Gid都是PK。
我不是试图仅将它们复制到T2.R的值,但它必须在Aid,Gid上的两个表中同步。为什么反对,解决方案是什么? (某些数据在表之间复制,但R不是)。
由于
澄清:
表1(T1)
Aid R Data fields .....
UQid1 0 ........ data .........
UQid2 0 ........ data .........
表2(T2)
Gid R Different data fields....
UQid6 R6 ....... data ....
UQid12 R12 ....... data ....
UQid23 R23 ....... data ....
UQid1 R1 ....... data ....
T1,T2的订购方式不一样。对于T1中的每个Aid,我必须在T2中找到Gid的相应值(例如UQid1),并将T2中该行中R的(严格)非零值复制到T1中的相应行。
T2的所有元素都是非空的,目前用于数字;和T2远大于T1
答案 0 :(得分:0)
您的问题很混乱,在您尝试插入的初始帖子中,但在编辑中您说:“对于T1中的每个Aid,我必须在T2中找到相应的Gid值(例如UQid1)并复制(严格地说)T2中该行中的R的非零值进入T1中的相应行。“
如果确实如此,你应该能够做到这样的事情:
UPDATE table_1 AS t1 SET t1.value = (SELECT t2.value FROM table_2 AS t2 WHERE t2.UQid1 = t1.id);