1

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

我的 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 WHERE news.”附近使用正确的语法。在第 2 行*

4

2 回答 2

1

您使用的语法是 for 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() 
于 2013-02-19T09:01:02.450 回答
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()

——试试这个方法。

检查类似的线程

于 2013-02-19T09:04:27.233 回答