【问题标题】:how to SELECT and UPDATE query involving two table如何 SELECT 和 UPDATE 查询涉及两个表
【发布时间】:2013-06-19 13:29:58
【问题描述】:

使用 MYSQL,我可以使用带有 where 子句的 select 语句插入表中

INSERT INTO Targeted (field1,field2) SELECT field1,field2 FROM Table WHERE id=$id

现在我也尝试使用 select 进行更新...这是我的表格的样子

 tagged                tags
---------          -------------
fid   tid            id  amount
 1     2              1    0
 1     1              2    0
 2     2              3    0
 3     3              4    0
 3     4              

如何从使用特定 WHERE 子句(如 fid = 1)标记的表中选择 fid 然后使用标记返回的结果更新表标签

Input
fid = 1

Desired output
update tags with 1 amount=amount+1
update tags with 2 amount=amount+1

我对 SO question 进行了一些研究,这是我的查询的样子但它也没有给出任何错误或更改

UPDATE
     tags
SET
     tags.amount = tags.amount+1
FROM
     tags
INNER JOIN     
     tagged
ON     
     tags.id = tagged.tid 
WHERE
     tagged.fid  = 1

【问题讨论】:

    标签: mysql sql many-to-many


    【解决方案1】:

    您的UPDATE 语法错误。在 MySql 表引用中,首先是 SET 子句。

    试试

    UPDATE tags t JOIN tagged d
        ON t.id = d.tid 
       SET t.amount = t.amount + 1
    WHERE d.fid  = 1
    

    更新后tags 表会是这样的

    |身份证 |数量 | --------------- | 1 | 1 | | 2 | 1 | | 3 | 0 | | 4 | 0 |

    这里是SQLFiddle演示

    【讨论】:

    • @LeonArmstrong 我很高兴能帮上忙 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    相关资源
    最近更新 更多