我有一個查詢,當前查詢Post
表,而左加入Comment
表。它提取所有帖子及其相應的評論。不過,我想限制返回的評論數量。我嘗試添加一個子選擇,但遇到錯誤,如果我沒有將結果限制爲1.我真的不知道如何去處理這個問題,而仍然只使用一個查詢。這可能嗎?是否可以限制JOIN查詢的結果?
0
A
回答
2
這一個應該得到每個崗位的三個最新評論你的帖子,假設您的表看起來像:
後:
id
,post_text
評論:
id
,post_id
,comment_text
SELECT id, post_text, comment_text
FROM
(
SELECT p.id, p.post_text, c.comment_text
CASE
WHEN @id != p.id THEN @row_num := 1
ELSE @row_num := @row_num + 1
END AS rank,
@id := p.id
FROM post p
LEFT JOIN comment c ON (c.post_id = p.id)
JOIN (SELECT @id:=NULL, @row_num:=0) x
ORDER BY p.id,
c.id DESC -- newest comments first
) y
WHERE rank <= 3;
子查詢用於首先獲取最近的評論併爲每個帖子編號,而外層選擇刪除較舊的評論。
1
除非您有方便的過濾值(例如where pos between 1 and 5
),否則無法限制連接。您可以分別選擇第一條評論,第二條評論,第三條評論等,併合並結果。一些醜陋這樣的:
select This, That
from Post
left join (
select Some
from Comment
where PostId = Post.Id
order by CreatedDate
limit 1,1
) x on 1=1
union all
select This, That
from Post
inner join (
select Some
from Comment
where PostId = Post.Id
order by CreatedDate
limit 2,1
) x on 1=1
union all
select This, That
from Post
inner join (
select Some
from Comment
where PostId = Post.Id
order by CreatedDate
limit 3,1
) x on 1=1
相關問題
- 1. 可以限制查詢結果嗎?
- 2. 是否可以「連接」查詢結果?
- 3. 限制查詢結果以每
- 4. 權查詢,以限制搜索結果
- 5. SQL查詢 - 限制結果
- 6. 限制查詢結果
- 7. 限制查詢結果
- 8. SQL查詢-join得到以下結果
- 9. 在JOIN中限制查詢?
- 10. 是否可以限制連接返回的結果?
- 11. 是否可以限制外連接的結果?
- 12. 限制查詢結果以總成績負10個結果
- 13. 在繪製圖之前是否可以查詢軸限制?
- 14. 是否可以將mongoDB中的更新查詢限制爲特定限制?
- 15. 是否可以緩存子查詢的一些變量結果?
- 16. 是否可以獲取CMIS查詢的方面結果?
- 17. MySQL查詢限制的結果
- 18. wpdb查詢的限制結果
- 19. 限制mysql查詢的多個結果
- 20. jQuery的限制因素查詢結果
- 21. Django的 - 限制查詢結果
- 22. 是否可以將查詢查詢的結果寫入termianl的集合中?
- 23. 是否可以限制Bookmarklet?
- 24. 是否可以在PostgreSQL中用tenant_id限制所有查詢?
- 25. 限制查詢是否可以提高性能?
- 26. 是否可以獲取sp的結果集作爲我可以查詢的表?
- 27. 是否可以限制用戶每天可以在Redshift上運行的查詢
- 28. 在GROUP_CONCAT()或INNER JOIN上限制結果
- 29. 是否可以扁平化MongoDB結果查詢?
- 30. ALTER TABLE是否可以在Access 2010中接受查詢結果
如果您發佈當前查詢,則可以獲得更好的結果。 – 2010-03-17 21:04:32