2

MySQL で 4 つのテーブルを結合してデータを取得します。

4 つのテーブルを結合する最良の方法が必要です。

1. ユーザー

ID        NAME
1          me
2          you 
3          her

2.記事

ID   USER_ID   ARTICLE
1       1         etc
2       1         etc
3       2         third  

3.記事コメント

ID    ARTICLE_ID    COMMENT    
1        1            etc
2        1            etc
3        3            etc 

4.記事のポイント

ID ARTICLE_ID   POINTS
1      1         100  
2      1         200
3      2          50 
4      2          10   

それらを結合して取得する方法が必要です:

ARTICLE | USERNAME | TOTAL COMMENTS PER ARTICLE | TOTAL POINTS PER ARTICLE  

例: 記事 1 の場合: etc | me | 2 | 350
2 の場合:etc | you | 0 | 60そしてすべての記事の場合。

4

2 に答える 2

0
SELECT
    Articles.ID,
    Articles.USER_ID,
    Articles.ARTICLE,
    Users.NAME,
    COUNT(Article_comments.ID) AS `num_comments`,
    SUM(Article_points.POINTS) AS `points`
FROM
    Articles
INNER JOIN
    Users
ON
    Articles.USER_ID = Users.ID
LEFT OUTER JOIN
    Article_comments
ON
    Article_comments.ARTICLE_ID = Articles.ID
LEFT OUTER JOIN
    Article_points
ON
    Article_points.ARTICLE_ID = Articles.ID
GROUP BY
    Articles.ID
于 2012-08-19T07:33:25.653 に答える
0

これは私が行ったことでもありますが、コメントやポイントが多いレコードでは正しく機能しません。EX 上記の尋問の場合、記事 1 は以下を返します。

ID USER_ID 記事名 num_comments ポイント 1 1 etc me 4 600

于 2012-08-20T06:50:15.623 に答える