我有一個查詢,當前查詢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. SQL查詢 - 限制結果
- 5. 限制查詢結果
- 6. 限制查詢結果
- 7. SQL查詢-join得到以下結果
- 8. 在JOIN中限制查詢?
- 9. 是否可以限制外連接的結果?
- 10. 限制查詢結果以總成績負10個結果
- 11. 在繪製圖之前是否可以查詢軸限制?
- 12. MySQL查詢限制的結果
- 13. 是否可以獲取CMIS查詢的方面結果?
- 14. 是否可以限制Bookmarklet?
- 15. 是否可以在PostgreSQL中用tenant_id限制所有查詢?
- 16. 在GROUP_CONCAT()或INNER JOIN上限制結果
- 17. 是否可以獲取sp的結果集作爲我可以查詢的表?
- 18. 是否可以限制用戶每天可以在Redshift上運行的查詢
- 19. 是否可以將LIMIT與子查詢結果一起使用?
- 20. 顯示MySQL後的JOIN查詢結果
- 21. MySQL查詢限制結果由子表
- 22. 使用計數限制查詢結果
- 23. 在SSRS SQL查詢中限制結果
- 24. 休眠限制結果查詢
- 25. 上加入查詢限制結果
- 26. 如何限制查詢結果與MySQL
- 27. 在查詢中限制MySQL結果
- 28. 如何限制查詢結果?
- 29. 限制結果發現()查詢不能
- 30. 我可以限制使用JPQL命名查詢的Spring Data查詢方法的查詢結果嗎?
如果您發佈當前查詢,則可以獲得更好的結果。 – 2010-03-17 21:04:32