2013-02-19 70 views
1

我有兩個表:第一個存儲主要信息,第二個存儲一些額外的信息。我需要藉助存儲在第二個表中的一些數據來更新第一個表。帶有連接狀態的Sql更新

我的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 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() 

但它不工作UPDATE語句。發生此錯誤

*您的SQL語法錯誤;檢查與您的MySQL服務器版本對應的手冊,在正確的語法附近使用 'FROM news INNER JOIN news_extra ON news.news_id = news_extra.news_id WHERE news。'在第2行*

回答

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() 
+0

非常感謝。 – pikk 2013-02-19 09:22:56

+0

不客氣':D' – 2013-02-19 09:23:45

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