我有两个表:第一个存储主要信息,第二个存储一些额外的信息。我需要在第二个表存储的一些数据的帮助下更新第一个表。
我的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行*
答案 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()
- 试试这种方式。