세 개의 테이블이 있습니다:
사용자 테이블: user------user_id
기사 테이블: 기사----------------article_id,user_id;
댓글 테이블: Article_comment----comment_id,article_id
user 테이블은 article_comment 테이블과 일대다대다 관계를 갖습니다.
이제 기사_comment는 기사 ID%6: 기사_comment_0/1/2/3/4/5에 따라 6개의 테이블로 나뉩니다.
이제 특정 사용자의 모든 기사에 대한 댓글을 시간에 따라 표시해야 합니다. 댓글, SQL은 어떻게 작성하나요?
세 개의 테이블이 있습니다:
사용자 테이블: user------user_id
기사 테이블: 기사---article_id,user_id;
댓글 테이블: Article_comment----comment_id,article_id
user 테이블은 article_comment 테이블과 일대다대다 관계를 갖습니다.
이제 기사_comment는 기사 ID%6: 기사_comment_0/1/2/3/4/5에 따라 6개의 테이블로 나뉩니다.
이제 특정 사용자의 모든 기사에 대한 댓글을 시간에 따라 표시해야 합니다. 댓글, SQL은 어떻게 작성하나요?
<code>SELECT * FROM((SELECT * FROM article_comment_0 INNER JOIN article ON article_comment_0.article_id=article.article_id WHERE article.user_id='userid') UNION (SELECT * FROM article_comment_1 INNER JOIN article ON article_comment_1.article_id=article.article_id WHERE article.user_id='userid') UNION (SELECT * FROM article_comment_2 INNER JOIN article ON article_comment_2.article_id=article.article_id WHERE article.user_id='userid') UNION (SELECT * FROM article_comment_3 INNER JOIN article ON article_comment_3.article_id=article.article_id WHERE article.user_id='userid') UNION (SELECT * FROM article_comment_4 INNER JOIN article ON article_comment_4.article_id=article.article_id WHERE article.user_id='userid') UNION (SELECT * FROM article_comment_5 INNER JOIN article ON article_comment_5.article_id=article.article_id WHERE article.user_id='userid')) res ORDER BY res.comment_createtime DESC </code>
이렇게 테이블을 설계하면 매번 기사 쿼리를 연결해야 하므로 쿼리에 한 단계가 더 필요하지 않도록 공통 테이블에 중복된 user_id 필드를 추가하는 것이 좋습니다
테이블을 분할할 수 없으면 하지 마세요. 테이블을 분할하면 개발에 많은 문제가 발생합니다. mysql에 대해서는 잘 모르지만 이것저것 검색해봤습니다. :
http://dev.mysql.com/doc/refm...
쿼리 조건에 따라 테이블을 나누어야 하며, 그렇지 않으면 좋은 방법이 없습니다