관련 블로그 게시물 목록을 표시하고 현재 게시물에 대한 공통 태그 수에 따라 목록을 정렬하고 싶습니다. 각 게시물에는 여러 개의 태그가 연관 될 수 있습니다. 여기 내 테이블 구조입니다 :공통 태그 수로 정렬 된 관련 블로그 게시물을 어떻게 나열합니까?
[게시물] < - [게시물 - 투 - 태그 - 결합 테이블] -> [태그]
내가 사용 PHP와 MySQL - 나는이 작업을 수행 할 수 있습니다 하나의 검색어?
관련 블로그 게시물 목록을 표시하고 현재 게시물에 대한 공통 태그 수에 따라 목록을 정렬하고 싶습니다. 각 게시물에는 여러 개의 태그가 연관 될 수 있습니다. 여기 내 테이블 구조입니다 :공통 태그 수로 정렬 된 관련 블로그 게시물을 어떻게 나열합니까?
[게시물] < - [게시물 - 투 - 태그 - 결합 테이블] -> [태그]
내가 사용 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
는 기본 키 등 주요 게시물 테이블에 키, TID로 PID 가정 태그 테이블, p2t (태그에 게시) 테이블의 외래 키 모두?
물론 당신은 하나 개의 쿼리에서 작업을 수행 할 수 있습니다
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;