【问题标题】:update on inner join of 2 tables with where clause使用 where 子句更新 2 个表的内部连接
【发布时间】:2016-03-19 14:19:47
【问题描述】:

我正在尝试使用 where 子句对 2 个表的内部联接进行更新。 我目前有一个选择,可以得到我想要更新的结果。但是我在尝试进行更新时不断收到错误消息。 这是我的 SELECT 有效:

SELECT a.rd_1, total_points 
FROM bracket.ticket as a
Inner join bracket.picks as b 
where 
b.team_ID = 31 AND a.ID = b.ticket_ID

这是我的更新不起作用

UPDATE a 
set a.rd_1 = a.rd_1 + 1 
FROM bracket.ticket as a
Inner join bracket.picks as b 
    where 
    b.team_ID = 31 AND a.ID = b.ticket_ID

我也试过这个:

UPDATE a 
SET a.rd_1 = a.rd_1 + 1 
FROM bracket.ticket as a
Inner join bracket.picks as b 
    on a.ID = b.ticket_ID
where 
b.team_ID = 31 AND a.ID = b.ticket_ID

我在这里遇到的错误是: 语法错误:“FROM”(来自)在此位置不是有效输入。

门票

ID | rd_1 |总分

挑选

ID |票证_ID | team_ID

【问题讨论】:

    标签: mysql sql-update inner-join


    【解决方案1】:

    这是 MySQL 中的正确语法:

    UPDATE bracket.ticket t INNER JOIN
           bracket.picks p
           ON t.ID = p.ticket_ID
        SET t.rd_1 = t.rd_1 + 1 
    WHERE p.team_ID = 31;
    

    您的语法看起来更像 SQL Server。

    注意:我将表格别名更改为表格的缩写。有意义的表别名(例如缩写)使查询更易于理解。

    【讨论】:

    • 这有同样的问题
    • @SariRahal 。 . .这不能。没有FROM(尽管因为错字而出现了大约 10 秒)。
    • 对不起,我犯了一个错误。你是对的。我复制粘贴错了。
    • 它确实有效。我会在允许的时候给你正确的答案。
    猜你喜欢
    • 2011-12-02
    • 1970-01-01
    • 2019-06-10
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-18
    • 1970-01-01
    相关资源
    最近更新 更多