много вещей в одном запросе.Является ли это возможным? - PullRequest
1 голос
/ 30 июня 2010

У меня три таблицы

меню

+--id---ident---+
|--1----menu_1--|

menus_data

+--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 для первой.

давайте предположим, что я добавляю новый язык с id = 4. теперь мне нужно дать значения по умолчанию (которые должны быть равны id_lang = 1 значение) для всех меню, поэтому мне нужно добавить строку в menus_data table

|--4----1-----------menu_eng------4-------|

и я должен сделать это со всеми меню из menus таблицы.

Я могу сделать это с помощью дерева запросов -

  1. найти список всех меню из menus таблицы
  2. найти значение по умолчанию для каждого элемента
  3. добавить строку в таблицу menus_content с этими значениями

но, возможно, это можно сделать одним запросом?

Спасибо

1 Ответ

1 голос
/ 30 июня 2010

Я думаю, что это возможно.Это было бы что-то вроде этого:

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

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