最初我有三个带有链接的表;
TableC-> TableB-> TableA
CREATE TABLE TableA (
id int(15) PRIMARY KEY,
name char(25) not null
);
CREATE TABLE TableB (
id int(15),
A_id int(15) not null,
Foreign Key(A_id) references TableA(id),
);
CREATE TABLE TableC (
id int(15),
B_id int(15) not null,
Foreign Key(B_id) references TableB(id),
);
我想直接在TableC上添加TableA的外键后删除TableB;
TableC-> TableA
如果我有大量TableC行,如何迁移这些现有数据? 我在下面的查询中尝试过,但失败的原因超过1行。 。
update TableC set A_id = ( select ta.id from TableC tc, TableB tb, TableA ta where tc.B_id=tb.id and tb.A_id=ta.id );
能请你帮忙吗?
答案 0 :(得分:1)
尝试使用直接子查询。
UPDATE tablec
SET a_id = (SELECT b.a_id
FROM tableb b
WHERE b.id = tablec.b_id);