4

これが私の質問です:

SELECT user.*, @UserID:=user.uid,
    (SELECT count(c1) FROM (
    SELECT COUNT(*) AS c1 FROM user_group
    WHERE user_group.uid=@UserID
    GROUP BY user_group.uid
) x1) AS x2

FROM user 

問題は、サブクエリ@UserIDに渡されないことです

4

2 に答える 2

4

なぜそこに変数を渡すのですか?このように外部テーブル参照を直接使用します。

SELECT user.*, 
(SELECT COUNT(*) AS c1 FROM user_group
WHERE user_group.uid=user.uid
GROUP BY user_group.uid) AS GroupCount
FROM user;
于 2013-02-02T13:07:12.947 に答える
2

使ってJOINみませんか?結果はあなたが望むものと同じだと思います。そして、ユーザーが持っているグループの総数を取得したいと思います。右?

SELECT  a.*, 
        COALESCE(b.totalCount, 0) totalCount,
        COALESCE(b.totalType, 0) totalType
FROM    user a
        LEFT JOIN
        (
            SELECT  uid, 
                    COUNT(*) totalCount, 
                    COUNT(DISTINCT type) totalType
            FROM    user_Group 
            GROUP BY uid
        ) b ON a.uid = b.uid
于 2013-02-02T13:08:21.443 に答える