2014-10-31 107 views
0

請看下面的查詢。#1064 - 你的SQL語法有錯誤:這個查詢有什麼問題?

SELECT sub_words.idwords, words_inc.idArticle 
(
    SELECT sub0.idwords, SUBSTRING_INDEX(GROUP_CONCAT(sub1.idwords), ',', 10) AS excl_words,  COUNT(sub1.idwords) AS older_words_cnt 
    FROM words_learned sub0 
    LEFT OUTER JOIN words_learned sub1 
    ON sub0.userId = sub1.userId 
    AND sub0.order < sub1.order 
    WHERE sub0.userId = 1 
    GROUP BY sub0.idwords 
) sub_words 
INNER JOIN words words_inc 
ON sub_words.idwords = words_inc.idwords 
LEFT OUTER JOIN words words_exc 
ON words_inc.idArticle = words_exc.idArticle 
AND FIND_IN_SET(words_exc.idwords, sub_words.excl_words) 
WHERE words_exc.idwords IS NULL 
ORDER BY older_words_cnt 
LIMIT 100 

這給了錯誤

#1064 - 你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法使用附近的手冊 'SELECT sub0.idwords,SUBSTRING_INDEX(GROUP_CONCAT(sub1.idwords),', '10),EXC' 在行3

我單獨檢查了子查詢,並且子查詢中沒有錯誤!這裏發生了什麼?

回答

1

你錯過了from關鍵字

SELECT sub_words.idwords, words_inc.idArticle 
FROM 
(... 
+0

哇。一個簡單的答案。謝謝! – 2014-10-31 10:58:40

+0

將在12分鐘後接受反饋:) – 2014-10-31 11:01:24