스레드 및 게시물이있는 시스템을 구축하려고합니다. 가장 인기있는 스레드를 가져 오려고합니다 (사용자가 "좋아요"버튼을 클릭하여 더 인기있게 만들 수 있음). 대부분의 게시물이 있습니다. 문제는 대부분의 게시물을 통해 결과를 정렬 한 다음 좋아하는 게시물을 정렬하는 것입니다. I 300 게시물 200 개 좋아 가진 스레드가있는 경우 다른 쓰레드가 가지고있는 동안우선 순위별로 count()를 사용하여 T-SQL을 정렬 한 결과
그래서 예를 들어, .. 300 개 좋아 201 likes..I은 제 2 기둥의 선택을 할 ..
테이블 구조 요컨대 :
topic:
--------
topic_id
liked
comment:
-------
comment_id
topic_id
여기에 지금까지 내 저장 프로 시저입니다 :
dbo.Trends
AS
SELECT TOP 1 title, COUNT(com.topic_id), COUNT(topc.user_id_liked)
FROM comment AS com
INNER JOIN topic AS topc ON com.topic_id=topc.topic_id
GROUP BY com.topic_id, topc.user_id_liked,title
ORDER BY COUNT(com.topic_id), COUNT(topc.user_id_liked) DESC
나는 내가 맞다, 아니면 흐름 로직을 제어하는 결과를해야합니다 확실하지 오전. 내가 항목을 좋아하기 전에 항목 테이블에서 topic_id를 배치 주문 진술 문을 선택/주문 topic_id 우선 순위 걸릴 것입니다.
UPDATED : 쿼리가 업데이트되었습니다.
사용중인 sql-server의 버전은 무엇입니까? – Arion
@Dmitry Makovetskiyd - 당신은'topic_id'가 우선한다고 가정하는 것이 옳습니다. 빠른 테스트는 당신에게 그렇게 말했을 것입니다 :) –
Visual Studio 2010을 사용하고 있습니다 ... 저장 프로 시저를 구축하고 있습니다 .. 데이터가 없습니다 .. vs2010에 SQL Express 2008 (내장)이 있습니다 –