В этом случае я создал 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. Я хочу вставить с PROJECT_NAME из таблицы "проектов". Когда я попробовал с приведенной ниже командой:
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';
Это показывает ошибку:
1054 - Неизвестный столбец 'projects.PROJECT_NAME' в списке полей
Но когда я написал так:
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';
Это не показывало никакой ошибки, но оно не вставляло ни одной записи строки в таблицу «модулей».
У меня есть вопрос: можно ли вставить в таблицу значений "модули" внутреннее соединение с другой таблицей (внутреннее объединение "проекты")? Если да, скажи, что мне делать. Спасибо за любую помощь.
Например:
В таблицу "модули" я ничего не вставил. Но хочу вставить данные:
ID_MODULE = 1
NAME = "S-BOX"
projects.PROJECT_NAME = "BOX" (which is inner joined on modules.ID_PROJECT = projects.ID)