我有兩個表,「主題」(表A)和「主題投票」(表B)。每個「主題」都有多個「主題投票」。我需要從「主題」中選擇行,並按相關「主題投票」的總數排序。訂單結果從表A的相關行的總數形式表B
怎麼可能在sqlite中?我是否需要爲此創建視圖,還是可以使用JOIN解決?
我有兩個表,「主題」(表A)和「主題投票」(表B)。每個「主題」都有多個「主題投票」。我需要從「主題」中選擇行,並按相關「主題投票」的總數排序。訂單結果從表A的相關行的總數形式表B
怎麼可能在sqlite中?我是否需要爲此創建視圖,還是可以使用JOIN解決?
如果您不需要票,你可以只是把相關的查詢在order by
:
select t.*
from topics t
order by (select count(*) from topic_votes tv where t.topic = v.topic) desc;
通常情況下,你想投票的結果集,以及數量。一個簡單的方法是將子查詢移到select
條款:
select t.*,
(select count(*) from topic_votes tv where t.topic = v.topic
) as votes
from topics t
order by votes desc;
假設你有topics
表和FK topic_id一個PK ID在topic votes
表:
select
t.*
from topics t
left join topic_votes v on t.id = v.topic_id
group by t.id
order by count(v.topic_id) desc;