将两个表中的值插入一个表中

时间:2014-09-29 07:02:36

标签: mysql

现在,继续Base Question的新方案如下:

表:menu_list_hed

menu_id    menu_name    shop_id    menu category
--------------------------------------------
 1        Breakfast      12          Veg
 2        Dinner         12          Veg
 .... Many more
 85       Breakfast      13          Veg
 36       Dinner         13          Veg
 .... Many more

我有另一个名为menu_items的表,其中已有shop_id 12

的项目
id     shop_id    menu_id   item_name
--------------------------------------
 1      12           1       Roti
 2      12           1       Prantha
 3      12           2       Thali
 4      12           2       Sweet
 .... many More

现在我希望为shop_id 13插入项目,因为items相同,但shop_idmenu_id将有所不同,如下所示:

  id     shop_id    menu_id   item_name
--------------------------------------
 1      12           1       Roti
 2      12           1       Prantha
 3      12           2       Thali
 4      12           2       Sweet
 .... many More
 111     13          85      Roti
 112     13          85      Prantha
 113     13          36      Thali
 114     13          36      Sweet

我在上一个问题中使用查询复制了值,然后像

那样运行更新语句
UPDATE item  SET `menu_id`= 85 where `menu_id` = 1 and restaurant_id = 13;

但我希望通过单一查询实现它

2 个答案:

答案 0 :(得分:1)

INSERT INTO menu_items (shop_id, menu_id, item_name) 
SELECT 13,  menu_id + 24,  item_name FROM  menu_items 

答案 1 :(得分:0)

您真的不必使用2个查询:

你可以将menu_id col作为标识列,否则你可以做最多

INSERT INTO menu_list_hed
    (`menu_id`,menu_name`, `shop_id`, `menu category`)
select max(menu_id)+1 `menu_name`, '13' AS `shop_id`, `menu category`
from menu_list_hed where shop_id = 12
;

除非您想添加一些特定的ID,并且它只是您想要的唯一性,否则应该这样做。