2013-10-26 3 views
0

나는 잠시 동안 지금 검색했지만 여전히 최적의 솔루션을 찾지 못했습니다. 나는 세 개의 테이블을 가지고있다 : 게시물, 회원 및 의견. 나는 코멘트와 답장 시스템을 가지고 싶다.코멘트 및 답장, 3 개의 테이블 합류 쿼리

홈페이지 게시물 :

post_id | image_url | image_thumb_url | title | text | date | sender_id 

회원 : 게시물

user_id | username | pw | email | 

댓글 (대답) :

내 테이블입니다
com_id | comment | post_id_fk | user_id_fk | ip | date 

나는 현재 회원 데이터와 게시물을 검색하는 쿼리를 가지고 :

SELECT * FROM `posts` 
LEFT JOIN `membership` ON `posts`.`sender_id` = `membership`.`user_id` 
UNION SELECT * FROM `posts` 
     RIGHT JOIN `membership` ON `posts`.`sender_id` = `membership`.`user_id` 
     ORDER BY `post_id` DESC LIMIT $limit $start; 

내가 지금 회원 데이터를 포함, 각 게시물에 응답을 추가 할. 누구나 제안이나 더 나은 해결책이 있습니까?

+0

왜 'LEFT JOIN'을 (를) 사용하고 있습니까? 회원이 아닌 사람이 게시물을 제출할 수 있습니까? – Barmar

+0

'LIMIT'을 (를) 게시물 또는 댓글 + 댓글 수에 적용 하시겠습니까? – Barmar

+0

그리고 노조는 무엇입니까? 게시물이없는 멤버도 나열하고 싶습니까? – Barmar

답변

0
SELECT * FROM posts AS P 
LEFT JOIN comments AS C 
ON P.post_id = C.post_id_fk 
LEFT JOIN membership AS POST_MEMBER 
ON POST_MEMBER.user_id = P.sender_id 
LEFT JOIN membership AS REPLY_MEMBER 
ON REPLY_MEMBER.user_id = C.user_id_fk