一个查询中有很多东西。可能吗?

时间:2010-06-30 16:00:17

标签: php mysql phpmyadmin

我有三张桌子

菜单

+--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表中添加行

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

我必须使用menus表中的所有菜单。

我可以使用树查询 -

  1. menus table
  2. 中找到所有菜单的列表
  3. 找到每个元素的默认值
  4. menus_content表中添加具有该值的行
  5. 但也许可以在一个查询中完成?

    由于

1 个答案:

答案 0 :(得分:1)

我认为这是可能的。它会是这样的:

insert into `menus_data` select null, `id_parent`, `name`, 4 from `menus_data` where `id_lang` = 1;

我没有检查过,所以语法可能有些偏差。该查询还假设在menus_data中为每个菜单都有id_lang = 1的记录。

此处有关此类查询的更多信息:http://dev.mysql.com/doc/refman/5.1/en/insert-select.html