【问题标题】:Insert values from A table to A table将值从 A 表插入 A 表
【发布时间】:2014-09-29 05:20:43
【问题描述】:

我在 mysql 中有一张存储菜单项的表。结构如下

表:menu_list_hed

id    menu_name    shop_id    menu category
--------------------------------------------
 1     Breakfast      12          Veg
 2     Dinner         12          Veg
 .... Many more

现在,我有另一家商店,菜单相同,但 shop_id(13) 不同。如何再次复制相同的值并使表格如下所示

id    menu_name    shop_id    menu category
--------------------------------------------
 1     Breakfast      12          Veg
 2     Dinner         12          Veg
 .... Many more
 25    Breakfast      13          Veg
 26    Dinner         13          Veg
 .... Many more

我尝试从 phpmyadmin 导出 SQL,但这将花费大量时间,因为我必须手动更改每个 SQL 语句的 shop_id

【问题讨论】:

    标签: php mysql sql


    【解决方案1】:

    您可以使用 insert 和 select 并在 select 语句中提供您的 shop_id

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

    Demo

    【讨论】:

    • 这个查询表明Mysql Returned 0 set
    • @GagandeepSharma 你有这个Fiddle demo,它也在工作你是如何尝试这个查询的,你能不能用你的示例数据和查询创建一个示例小提琴?
    • @M Khalid Junaid .. 我创建了小提琴`sqlfiddle.com/#!2/b34ce/11,它工作正常,但它在 mysql PhpMyadmin 数据库中给出了空结果集
    • shop_id 这里是主表shop 的外键
    • 现在..我有另一个表..其中menu_items需要针对每个menu_category插入...我怎样才能实现这一点..或者我正在写新问题跨度>
    【解决方案2】:

    尝试以下方法,对同一张表进行子查询以匹配 shop_id。希望至少这个结构可以帮助你

    INSERT INTO shop(id , menu_name, shop_id, 'menu category')

    选择 MAX(id) + 1 , menu_name ,
    (SELECT MAX((shop_id)) +1 FROM menu_list_hed h1 其中 h1.menu_name = h2.menu_name), menu category)
    FROM menu_list_hed h2;

    【讨论】:

      【解决方案3】:

      这样写查询

      INSERT INTO destination_table ( 
            Field_1, 
            Field_2, 
            Field_3) 
      SELECT Field_1, 
            Field_2, 
            Field_3 
            FROM source_table;
      

      【讨论】:

      • 这样我就得写很长的查询了,,
      猜你喜欢
      • 2015-05-12
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 1970-01-01
      • 2014-06-17
      • 1970-01-01
      • 2011-06-05
      • 1970-01-01
      相关资源
      最近更新 更多