• 中文
    • English
  • 注册
  • 赞助本站

    • 支付宝
    • 微信
    • QQ

    感谢一直支持本站的所有人!

    • 查看作者
    • 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
    • 3.2k
    • 请登录之后再进行评论

      登录
    • 做任务
    • 实时动态
    • 偏好设置
    • 返回顶部
    • 单栏布局 侧栏位置: