Создать вставку на основе объединенного выбора? - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь выяснить, как создать вставку на основе оператора 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 в панели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...