MySQL - запрос на обновление всех строк с использованием внешних ссылочных значений? - PullRequest
0 голосов
/ 29 августа 2018

Изначально у меня есть три таблицы со ссылками;

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),
);

Я хочу удалить TableB после добавления внешнего ключа TableA непосредственно в TableC, как;

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 );

Не могли бы вы помочь?

1 Ответ

0 голосов
/ 29 августа 2018

Попробуйте использовать прямой подзапрос.

UPDATE tablec
       SET a_id = (SELECT b.a_id
                          FROM tableb b
                          WHERE b.id = tablec.b_id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...