Почему не работает LIMIT в подзапросе - для профи SQL
SELECT c.*, ar.ArticleName, ar.idArticle, du.DetailToUsersName, du.DetailToUsersPhoto, COUNT(c.idCommentToArticle) AS CNT, CASE WHEN d.Count IS NULL THEN 0 ELSE d.Count END AS CountLikes
FROM commenttoarticle c
INNER JOIN (SELECT CommentToArticlePID FROM commenttoarticle
GROUP BY CommentToArticlePID
ORDER BY CommentToArticlePID LIMIT 3) AS articleComments
LEFT JOIN article ar ON c.CommentToArticleIdArticle = ar.idArticle
LEFT JOIN detailtousers du ON du.idDetailToUsers = c.CommentToArticleIdUser
LEFT JOIN `likes` d ON (d.IdNote = c.idCommentToArticle AND d.LikeType = 6)
WHERE c.CommentToArticleIdArticle = 11
GROUP BY c.idCommentToArticle
Почему-то оператор LIMIT 3 в суб-запросе не работает... Сейчас этот запрос показывает все строки из таблицы commenttoarticle
Отредактированная версия:
SELECT c.*, ar.ArticleName, ar.idArticle, du.DetailToUsersName, du.DetailToUsersPhoto, COUNT(c.idCommentToArticle) AS CNT, CASE WHEN d.Count IS NULL THEN 0 ELSE d.Count END AS CountLikes
from (select * from commenttoarticle inner join (select distinct(idCommentToArticle) from commenttoarticle order by CommentToArticlePID limit 3) as ac using(CommentToArticlePID)) as c
LEFT JOIN article ar ON c.CommentToArticleIdArticle = ar.idArticle LEFT JOIN detailtousers du ON du.idDetailToUsers = c.CommentToArticleIdUser LEFT JOIN `likes` d ON (d.IdNote = c.idCommentToArticle AND d.LikeType = 6) WHERE c.CommentToArticleIdArticle = 11 GROUP BY c.idCommentToArticle ORDER BY c.idCommentToArticle DESC
Ругается так:
Unknown column 'CommentToArticlePID' in 'from clause'
Источник: Stack Overflow на русском