Как вставить в таблицу значения из других таблиц - mysql inner join
В этом случае я создал 2 таблицы:
Проекты:
CREATE TABLE projects ( ID int(5) NOT NULL, PROJECT_NAME varchar(50) NOT NULL );
Модули:
CREATE TABLE modules ( ID_MODULE int(11) NOT NULL, NAME varchar(50), ID_PROJECT int(11) DEFAULT NULL );
Я вставил данные в таблицу проектов:
INSERT INTO projects (ID, PROJECT_NAME) VALUES (1, 'BOX'), (2, 'Duck')
Теперь я хотел бы вставить данные в таблицу "модули", но не с помощью ID_PROJECT. Я хочу вставить с именем проекта из таблицы "проекты". Когда я попробовал с командой( в "Что вы пробовали?"), она показала ошибку:
Цитата:1054 - неизвестная колонка ' проекты.PROJECT_NAME' в списке полей
Но когда я так написал (второй код в "Что вы пробовали?") Он не показывал никаких ошибок, но и не вставлял никаких записей строк в таблицу "модули".
У меня есть вопрос, Можно ли вставить в таблицу "модули" значения с внутренним соединением другой таблицы (inner join "projects" table)? Если да, то скажите, что мне делать. Спасибо за любую помощь.
Например:
В таблицу "модули" я ничего не вставил. Но хочу вставить данные:
ID_MODULE = 1 NAME = "S-BOX" projects.PROJECT_NAME = "BOX" (which is inner joined on modules.ID_PROJECT = projects.ID)
Что я уже пробовал:
Я попробовал сначала с этой командой:
INSERT INTO modules (ID_MODULE, NAME, projects.PROJECT_NAME) SELECT 1, 'S-BOX', projects.PROJECT_NAME FROM modules INNER JOIN projects ON modules.ID_PROJECT = projects.ID AND projects.PROJECT_NAME = 'BOX';
Но это показать сообщение об ошибке. Но когда я написал в приведенной ниже команде:
INSERT INTO modules (ID_MODULE, NAME, ID_PROJECT) SELECT 1, 'S-BOX', projects.PROJECT_NAME FROM modules INNER JOIN projects ON modules.ID_PROJECT = projects.ID AND projects.PROJECT_NAME = 'BOX';
Он не показывал никаких ошибок, но и не вставлял никаких записей строк в таблицу "модули".