SQL语法错误。 MySQL Update表SELECT

时间:2014-05-12 04:15:08

标签: mysql sql

我想根据同一个表中存在的id来更新一行。换句话说,id是其他表中的主键,只是我要更新的表中的一列。

我想基于相同的ID进行更新。

我有这个查询但由于SQL语法而无法正常工作。

UPDATE
transaction
SET
    DaysRented = 3,
    Cost = 3,
    TotalCost= 5
FROM 
 transaction

INNER JOIN
    rentals
ON
     transaction.idRentals = rentals.idRentals;

2 个答案:

答案 0 :(得分:2)

您正在使用SQL Server update / join语法。正确的MySQL语法是:

UPDATE transaction INNER JOIN
       rentals
       ON transaction.idRentals = rentals.idRentals
SET DaysRented = 3,
    Cost = 3,
    TotalCost = 5;

答案 1 :(得分:2)

mysql的语法

http://www.mysqltutorial.org/mysql-update-join/

  1. 首先,指定主表(T1)和所需的表 在UPDATE子句之后加入(T2)的主表。请注意 您必须在UPDATE子句后指定至少一个表。该 表中的数据在UPDATE子句之后未指定 没有更新。
  2. 其次,您指定了一种您想要使用的联接,即 INNER JOIN或LEFT JOIN和连接条件。注意JOIN 子句必须出现在UPDATE子句之后。
  3. 第三,为T1和/或T2表中的列分配新值 你想要更新。

  4. UPDATE transaction 
    INNER JOIN rentals  ON transaction.idRentals = rentals.idRentals
    SET DaysRented = 3,
        Cost = 3,
        TotalCost = 5;