带有Join语句的Sql Update

时间:2013-02-19 08:59:45

标签: mysql sql join

我有两个表:第一个存储主要信息,第二个存储一些额外的信息。我需要在第二个表存储的一些数据的帮助下更新第一个表。

我的SELECT语句正在运行

SELECT  news.news_id, 
        news.title, 
        news.cat_id, 
        news.sub_cat_id, 
        news_extra.date_vision_tr
FROM news_extra
    JOIN news 
        ON news.news_id = news_extra.news_id
WHERE news.cat_id=1 AND sub_cat_id=5 AND news_extra.date_vision_tr < CURDATE()

比我尝试过像这样的UPDATE语句

UPDATE news SET news.sub_cat_id=8 
FROM news
   INNER JOIN news_extra
        ON news.news_id = news_extra.news_id
WHERE news.cat_id=1 AND sub_cat_id=5 AND news_extra.date_vision_tr < CURDATE() 

但它不起作用。给出这个错误

  

*您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以获得正确的语法   靠近'FROM news INNER JOIN news_extra ON news.news_id =   news_extra.news_id什么新闻。'在第2行*

2 个答案:

答案 0 :(得分:1)

您使用的语法是SQL Server

以下是MySQL

的语法
UPDATE  news a
        INNER JOIN news_extra b
            ON a.news_id = b.news_id
SET     a.sub_cat_id = 8 
WHERE   a.cat_id = 1 and 
        sub_cat_id = 5 and 
        b.date_vision_tr < CURDATE() 

答案 1 :(得分:0)

您必须更熟悉SQL Server。您使用的语法将在SQLServer中使用。对于MySQL:

UPDATE news
INNER JOIN news_extra
ON news.news_id = news_extra.news_id
SET news.sub_cat_id=8 
WHERE news.cat_id=1 and sub_cat_id=5 and news_extra.date_vision_tr < CURDATE()

- 试试这种方式。

Check similar thread