공통 태그 수로 주문한 관련 블로그 게시물을 어떻게 나열합니까?

StackOverflow https://stackoverflow.com/questions/818551

  •  03-07-2019
  •  | 
  •  

문제

관련 블로그 게시물 목록을 표시하고 싶습니다. 현재 게시물에 필요한 공통 태그 수로 목록을 주문하고 싶습니다. 각 게시물에는 여러 개의 태그가 관련 될 수 있습니다. 다음은 내 테이블 구조입니다.

Posts] <- [Posts-to-tags-Joining-Table]-> [태그

PHP와 MySQL을 사용하고 있습니다. 한 쿼리로 이것을 할 수 있습니까?

도움이 되었습니까?

해결책

는 어때...:

SELECT COUNT(*) AS numcommon, posts.pid, posts.post FROM posts
               INNER JOIN p2t ON p2t.pid = posts.pid
               WHERE p2t.tid IN
               (SELECT p2t.tid FROM p2t
               INNER JOIN posts ON p2t.pid = posts.pid
               WHERE posts.pid = 1)
               AND posts.pid != 1
               GROUP BY posts.pid
               ORDER BY numcommon

POST 테이블의 기본 키로 PID를 가정하고 TID는 태그 테이블의 기본 키로 P2T (Post -to Tag) 테이블의 외래 키로?

다른 팁

물론 한 쿼리로 할 수 있습니다.

SELECT postid, count(tagid) as common_tag_count
FROM posts_to_tags
WHERE tagid IN (SELECT tagid FROM posts_to_tags WHERE postid = 2)
GROUP BY postid ORDER BY common_tag_count DESC; 
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top