2014-10-31 110 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