【问题标题】:Mysql update from select syntax error选择语法错误的Mysql更新
【发布时间】:2016-07-23 13:28:55
【问题描述】:

查询

我正在尝试执行以下查询,但在我的 phpmyadmin 中说

  • 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“FROM eest_estimated_total pet INNER JOIN eest_total pt ON pt.OrderNo = pet.Order”附近使用正确的语法
UPDATE eest_estimated_total 
SET pet.Freight = pt.FrieghtCost, pet.CustomDuty = pt.ImportDuty 
FROM eest_estimated_total pet 
INNER JOIN eest_total pt 
ON pt.OrderNo = pet.OrderNo 
WHERE pt.OrderNo = pet.OrderNo

那么我可以知道我哪里做错了吗?

【问题讨论】:

  • 看起来不错,将 UPDATE eest_estimated_total 更改为 UPDATE pet

标签: mysql


【解决方案1】:

试试这个方法:

UPDATE pipo_estimated_total AS pet
INNER JOIN pipo_total AS pt 
ON pt.OrderNo = pet.OrderNo 
SET pet.Freight = pt.FrieghtCost, pet.CustomDuty = pt.ImportDuty   
WHERE pt.OrderNo = pet.OrderNo

【讨论】:

  • @QuestionUser 抱歉,我包含了一个未在 mysql 中使用的 FROM 子句
【解决方案2】:

运行此查询:-

UPDATE pipo_estimated_total 
SET pet.Freight = pt.FrieghtCost, pet.CustomDuty = pt.ImportDuty 
FROM pipo_estimated_total AS pet 
INNER JOIN pipo_total pt 
ON pt.OrderNo = pet.OrderNo 
WHERE pt.OrderNo = pet.OrderNo

【讨论】:

    【解决方案3】:

    正如答案所说:update-from-select-using-sql-server

    UPDATE
        Table_A
    SET
        Table_A.col1 = Table_B.col1,
        Table_A.col2 = Table_B.col2
    FROM
        Some_Table Table_A
    INNER JOIN
        Other_Table Table_B
    ON
        Table_A.id = Table_B.id
    WHERE
        Table_A.col3 = 'cool'
    

    你的答案:

    UPDATE pet
    SET pet.Freight = pt.FrieghtCost, pet.CustomDuty = pt.ImportDuty 
    FROM eest_estimated_total pet 
    INNER JOIN eest_total pt 
    ON pt.OrderNo = pet.OrderNo 
    WHERE pt.OrderNo = pet.OrderNo
    

    【讨论】:

    • 这可能对Sql Server有效,但对MySQL无效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多