【问题标题】:Update row with data from another table使用另一个表中的数据更新行
【发布时间】:2019-05-21 20:41:35
【问题描述】:

我有一个包含以下表格的 mysql 数据库。

驱动表

  id    name    vehicleId
 -------------------------
   1     bob            1
   2     jim            1
   3     rob            2
   4     tim            2
   5     sue            3

车辆表

  id      model
 ---------------
   1      civic
   2       cr-v
   3      camry
   4    corolla

我希望能够使用车辆模型更新给定驾驶员的车辆。

我能够使用,

UPDATE driver, vehicle
SET vehicleId = vehicle.id
WHERE driver.name = "bob"
AND vehicle.model = "corolla";

但这似乎不是最佳/正确的解决方案。从我读过的内容来看,我似乎应该能够使用连接来做到这一点,但我没有任何运气使用这种方法。

基于联接的解决方案更好还是我的解决方案还可以?

提前致谢!

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    你的表述很好,虽然我更喜欢CROSS JOIN 而不是,

    您也可以使用子查询来表达这一点:

    UPDATE driver 
        SET vehicleId = (SELECT v.id FROM vehicle v WHERE v.model = 'corolla')
        WHERE name = 'bob';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-27
      • 1970-01-01
      • 2012-04-07
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 2011-06-29
      相关资源
      最近更新 更多