Я пытаюсь выяснить, как создать вставку на основе оператора select с объединениями.
По сути, я хочу взять объединенную запись и создать новую ее копию, назначенную новойдисплей (display_id в таблице страниц).Итак, у меня есть существующая запись страницы, присоединенная к записи панели, а pageID указан в таблице панелей.Я просто хочу сделать еще одну присоединенную запись, но вставить новый display_id в таблицу страниц.
SELECT p.id as pageID, p.title as pageTitle, p.page_type_id, p.display_id, p.start_time, p.end_time, p.duration, p.active, p.background_img, pn.id as panelID, pn.panel_type_id, pn.page_id, pn.cont_id as contentID, pn.active as panelActive, c.id as contentID, c.content as content
FROM pages p
INNER JOIN panels pn
on pn.page_id = p.id
INNER JOIN content c
on pn.cont_id = c.id
WHERE p.id = 286;
Результат:
pageID | pageTitle | page_type_id | display_id | duration | active | background_img | panelID | panel_type_id | page_id | contentID | panelActive | contentID | content
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
200 TEST 2 1 30 1 test.jpg 2 1 200 123 1 123 test
Мне нужна вставка, которая создает объединенную запись простокак и выше, но это будет установка нового display_id в таблице pages
.Все остальное было бы точно таким же.
Хитрость в том, что я должен вставить новую запись в таблицы и таблицы панелей для справки.Таким образом, это создает новый идентификатор в таблице страниц, на который ссылается также таблица панелей.Таблицы панелей ссылаются на содержимое по идентификатору, так что, на мой взгляд, содержимое может оставаться нетронутым.
Как я могу выполнить вставку на основе этого выбора / соединения, но объявив новый display_id?
Пример:
Если бы у меня была вставка на основе выбора выше.Я хотел бы создать новые записи в таблицах страниц / панелей, но я назначаю эту комбинацию страницы / панели / содержимого для отображения 4, я ожидаю:
pageID | pageTitle | page_type_id | display_id | duration | active | background_img | panelID | panel_type_id | page_id | contentID | panelActive | contentID | content
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
201 TEST 2 4 30 1 test.jpg 2 1 201 123 1 123 test
Обратите внимание, что она почти идентична, за исключением новой страницыИдентификатор в таблице страниц (также ссылается на панели).Таким образом, он вставил бы новую запись в страницы, но этот новый идентификатор также вставил бы как page_id в панели.