• 中文
    • English
  • 注册
  • 查看作者
  • 5-6:多表更新

    一.  前言

    上一节最后我们提到,虽然给商品分类表成功插入了分类记录,但是我们并没有给商品表进行更新操作,参照商品分类表更新商品表涉及到多表更新,这一节我们来讲解

    二.  多表更新

    多表更新的语法结构:

    UPDATE table_references
    SET col_name1={expr1 | DEFAULT}
    [, col_name2={expr2[DEFAULT}]...
    [WHERE where_condition]

    接下类我们需要将两张表进行连接,需要用表的参照关系

    表的参照关系的语法结构:

    table_reference
    {[INNER | CROSS] JOIN | {LEFT|RIGHT} [OUTER] JOIN}
    table_reference
    ON conditional_expr

    连接类型:

    • INNER JOIN,内连接,在MySQL中,JOIN,CROSS JOIN和INNER JOIN是等价的。
    • LEFT [OUTER] JOIN,左外连接
    • RIGHT [OUTER] JOIN,右外连接

    按照商品表的goods_cate和商品分类表 = cate_name作为连接条件,将tdb_goods按照内连接的方式和tdb_goods_cates连接:

    mysql> UPDATE tdb_goods INNER JOIN tdb_goods_cates ON goods_cate = cate_name SET goods_cate = cate_id;
    Query OK, 22 rows affected (0.01 sec)
    Rows matched: 22  Changed: 22  Warnings: 0

    ON后面为连接条件,SET后面为更新的值,可以看到22条记录被影响,检查一下:

    mysql> SELECT * FROM tdb_goods \G
    *************************** 1. row ***************************
       goods_id: 1
     goods_name: R510VC 15.6英寸笔记本
     goods_cate: 5
     brand_name: 华硕
    goods_price: 3399.000
        is_show: 1
     is_saleoff: 0
    *************************** 2. row ***************************
       goods_id: 2
     goods_name: Y400N 14.0英寸笔记本电脑
     goods_cate: 5
     brand_name: 联想
    goods_price: 4899.000
        is_show: 1
     is_saleoff: 0
    *************************** 3. row ***************************
       goods_id: 3
     goods_name: G150TH 15.6英寸游戏本
     goods_cate: 4
     brand_name: 雷神
    goods_price: 8499.000
        is_show: 1
     is_saleoff: 0
    *************************** 4. row ***************************
       goods_id: 4
     goods_name: X550CC 15.6英寸笔记本
     goods_cate: 5
     brand_name: 华硕
    goods_price: 2799.000
        is_show: 1
     is_saleoff: 0
    *************************** 5. row ***************************
       goods_id: 5
     goods_name: X240(20ALA0EYCD) 12.5英寸超极本
     goods_cate: 7
     brand_name: 联想
    goods_price: 4999.000
        is_show: 1
     is_saleoff: 0
    *************************** 6. row ***************************
       goods_id: 6
     goods_name: U330P 13.3英寸超极本
     goods_cate: 7
     brand_name: 联想
    goods_price: 4299.000
        is_show: 1
     is_saleoff: 0
    *************************** 7. row ***************************
       goods_id: 7
     goods_name: SVP13226SCB 13.3英寸触控超极本
     goods_cate: 7
     brand_name: 索尼
    goods_price: 7999.000
        is_show: 1
     is_saleoff: 0
    *************************** 8. row ***************************
       goods_id: 8
     goods_name: iPad mini MD531CH/A 7.9英寸平板电脑
     goods_cate: 2
     brand_name: 苹果
    goods_price: 1998.000
        is_show: 1
     is_saleoff: 0
    *************************** 9. row ***************************
       goods_id: 9
     goods_name: iPad Air MD788CH/A 9.7英寸平板电脑 (16G WiFi版)
     goods_cate: 2
     brand_name: 苹果
    goods_price: 3388.000
        is_show: 1
     is_saleoff: 0
    *************************** 10. row ***************************
       goods_id: 10
     goods_name:  iPad mini ME279CH/A 配备 Retina 显示屏 7.9英寸平板电脑 (16G WiFi版)
     goods_cate: 2
     brand_name: 苹果
    goods_price: 2788.000
        is_show: 1
     is_saleoff: 0
    *************************** 11. row ***************************
       goods_id: 11
     goods_name: IdeaCentre C340 20英寸一体电脑
     goods_cate: 1
     brand_name: 联想
    goods_price: 3499.000
        is_show: 1
     is_saleoff: 0
    *************************** 12. row ***************************
       goods_id: 12
     goods_name: Vostro 3800-R1206 台式电脑
     goods_cate: 1
     brand_name: 戴尔
    goods_price: 2899.000
        is_show: 1
     is_saleoff: 0
    *************************** 13. row ***************************
       goods_id: 13
     goods_name: iMac ME086CH/A 21.5英寸一体电脑
     goods_cate: 1
     brand_name: 苹果
    goods_price: 9188.000
        is_show: 1
     is_saleoff: 0
    *************************** 14. row ***************************
       goods_id: 14
     goods_name: AT7-7414LP 台式电脑 (i5-3450四核 4G 500G 2G独显 DVD 键鼠 Linux )
     goods_cate: 1
     brand_name: 宏碁
    goods_price: 3699.000
        is_show: 1
     is_saleoff: 0
    *************************** 15. row ***************************
       goods_id: 15
     goods_name: Z220SFF F4F06PA工作站
     goods_cate: 3
     brand_name: 惠普
    goods_price: 4288.000
        is_show: 1
     is_saleoff: 0
    *************************** 16. row ***************************
       goods_id: 16
     goods_name: PowerEdge T110 II服务器
     goods_cate: 3
     brand_name: 戴尔
    goods_price: 5388.000
        is_show: 1
     is_saleoff: 0
    *************************** 17. row ***************************
       goods_id: 17
     goods_name: Mac Pro MD878CH/A 专业级台式电脑
     goods_cate: 3
     brand_name: 苹果
    goods_price: 28888.000
        is_show: 1
     is_saleoff: 0
    *************************** 18. row ***************************
       goods_id: 18
     goods_name:  HMZ-T3W 头戴显示设备
     goods_cate: 6
     brand_name: 索尼
    goods_price: 6999.000
        is_show: 1
     is_saleoff: 0
    *************************** 19. row ***************************
       goods_id: 19
     goods_name: 商务双肩背包
     goods_cate: 6
     brand_name: 索尼
    goods_price: 99.000
        is_show: 1
     is_saleoff: 0
    *************************** 20. row ***************************
       goods_id: 20
     goods_name: X3250 M4机架式服务器 2583i14
     goods_cate: 3
     brand_name: IBM
    goods_price: 6888.000
        is_show: 1
     is_saleoff: 0
    *************************** 21. row ***************************
       goods_id: 21
     goods_name:  HMZ-T3W 头戴显示设备
     goods_cate: 6
     brand_name: 索尼
    goods_price: 6999.000
        is_show: 1
     is_saleoff: 0
    *************************** 22. row ***************************
       goods_id: 22
     goods_name: 商务双肩背包
     goods_cate: 6
     brand_name: 索尼
    goods_price: 99.000
        is_show: 1
     is_saleoff: 0
    22 rows in set (0.00 sec)

    可以看到22条记录的goods_cate都已经更新成功

  • 0
  • 0
  • 0
  • 4.3k
  • 请登录之后再进行评论

    登录
    单栏布局 侧栏位置: