У меня есть три таблицы
+--id---ident---+
|--1----menu_1--|
+--id---id_parent---name---------id_lang--+
|--1----1-----------menu_eng------1-------|
|--2----1-----------menu_rus------2-------|
+--3----1-----------menu_arm------3-------+
+--id---name--------+
|--1----english-----|
|--2----russian-----|
|--3----armenian----|
Вторая таблица хранит данные о меню (имена на всех языках), т.е. id_parent второй таблицы - это идентификатор первой.
Давайте добавим новый язык с id = 4. теперь мне нужно указать значения по умолчанию (которые должны быть равны значению id_lang
= 1) для всех меню, поэтому мне нужно добавить строку в таблицу menus_data
|--4----1-----------menu_eng------4-------|
и я должен делать это со всеми меню из таблицы menus
.
Я могу сделать это с помощью деревных запросов -
menus
menus_content
с этими значениямино, возможно, это возможно сделать в одном запросе?
Спасибо
Я думаю, что это возможно. Это будет примерно так:
insert into `menus_data` select null, `id_parent`, `name`, 4 from `menus_data` where `id_lang` = 1;
Я не проверял это, поэтому синтаксис может немного отличаться. В запросе также предполагается, что для id_lang = 1 в menus_data для каждого меню есть запись.
Дополнительная информация по этому типу запросов здесь: http://dev.mysql.com/doc/refman/5.1/en/insert-select.html