现在,继续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_id
和menu_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;
但我希望通过单一查询实现它
答案 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,并且它只是您想要的唯一性,否则应该这样做。