我写了这个:
SELECT DISTINCT CATEGORY FROM T AS T1
CROSS JOIN (SELECT *
FROM T
WHERE T.CATEGORY = T1.CATEGORY
ORDER BY CATEGORY DESC
LIMIT 10)
我收到了这个
“'where子句'中的未知列'T1.CATEGORY'。”
为什么?
更新
我的目的是获得10个任何类别的帖子。
答案 0 :(得分:1)
因为从子查询中看不到T1。
您的JOIN也没有用处和/或您可能忘记了JOIN条件。
答案 1 :(得分:0)
在JOIN条件下,应使用开启关键字
SELECT DISTINCT CATEGORY FROM T AS T1
CROSS JOIN SELECT * FROM T ON T.CATEGORY = T1.CATEGORY
ORDER BY CATEGORY DESC LIMIT 10;
答案 2 :(得分:0)
如果你需要获得每个类别的10个帖子,你可以使用这样的查询:
SELECT CATEGORY, Post
FROM (
SELECT a.CATEGORY, a.Post, count(*) as rn
FROM #T a
JOIN #T b ON a.CATEGORY = b.CATEGORY AND a.Post >= b.Post
GROUP BY a.CATEGORY, a.Post) dt
WHERE rn < 11;