вставить в выбор с помощью внешнего ключа - PullRequest
0 голосов
/ 30 сентября 2019
INSERT INTO trees (preview) 
select galleries.preview 
from galleries,trees 
where trees.id=galleries.idTree;

Я пытаюсь переместить столбец из таблицы в другую, я установил пустой столбец с тем же типом данных, что и исходный.

Где idTree равно idк таблице назначения (в исходной таблице idTree - ссылка внешнего ключа на id на trees, являющемся адресатом).

«Выбор» работает и возвращает мне правильный набор значений(по крайней мере, упорядочено по id и всем), но часть insert into ничего не делает, а поле на деревьях все еще пустое. что я делаю не так?

1 Ответ

2 голосов
/ 30 сентября 2019

INSERT INTO.. создаст новую строку;но вы хотите обновить существующие строки в таблице trees, которая имеет идентификатор. Попробуйте вместо UPDATE запрос:

UPDATE trees 
JOIN galleries ON galleries.idTree = trees.id
SET trees.preview = galleries.preview 
...