support 447 Posted January 29, 2021 Report Share Posted January 29, 2021 Если нужно для второго запроса получить id номер только что добавленной новости, то для этого тоже в SQL есть LAST_INSERT_ID() т.е. если Вам нужно сдлеать запись в 2 таблицы и иметь один id Например добавить статью с определённым номером id. В articles id запишется 6 , к примеру и что б в articles_description таблицу вставились данные с id статьи 6 В общем, вот пример, что б было понятно. INSERT INTO email_templates (`id`, `alias`, `default`, `order`) VALUES ('', "abandoned-cart", 0, 4); Первым запросом добавляет данные о шаблоне и записывается уникалный id запроса, дальше мы уже добавлем описание шаблона. Но нам нужно добавить описания для только что добавленного шаблона, а не для любого, т.е. связать именно только что добавленный шаблон и описание записать в другую таблицу для этого шаблона, а для этого надо знать id, с каким номером записался шаблон, какой id у шаблона в базе. Для этого и используется в запросе LAST_INSERT_ID() INSERT INTO `email_template_descriptions` (`id`, `email_template_id`, `language_id`, `subject`, `content`) VALUES (NULL, LAST_INSERT_ID(), 1, "Abandoned cart", "Thank you."); т.е. мы просто выполняем 2 запроса подряд: INSERT INTO email_templates (`id`, `alias`, `default`, `order`) VALUES ('', "abandoned-cart", 0, 4); INSERT INTO `email_template_descriptions` (`id`, `email_template_id`, `language_id`, `subject`, `content`) VALUES (NULL, LAST_INSERT_ID(), 1, "Abandoned cart", "Thank you."); и получится всё правильно, id номер вставляемый вторым запросов во вторую таблицу будет соответствовать первому запросу. Надеюсь, что понятно объяснил. Всё можно SQL запросами сделать. Link to post Share on other sites
Recommended Posts