много вещей в одном запросе. Является ли это возможным?

0

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

меню

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

menus_data​​h2 >

+--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 с этими значениями

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

Спасибо

  • 0
    Зачем вам нужны id и id_lang? Они всегда будут иметь одинаковую ценность?
  • 0
    И где находится таблица Menus_Content?
Показать ещё 5 комментариев
Теги:
phpmyadmin

1 ответ

1
Лучший ответ

Я думаю, что это возможно. Это будет примерно так:

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

  • 0
    Мне нравится этот новый тип запросов (новый для меня;) Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню