如何用count来编写这个MYSQL查询

时间:2015-06-24 04:40:56

标签: mysql

所以我有下表:

userid | name | referralcode

当用户在网站上注册时,他们会将其他人的推荐代码(推荐代码与其他人的用户ID相同)

所以我正在寻找一个输出类似

的SQL查询

20(这意味着20个用户的推荐代码上有此用户ID),Gerardo Bastidas,Valencia

10,胡安巴斯蒂达斯,瓦伦西亚

我想获得有关用户的所有信息。它们都位于同一张桌子里。

2 个答案:

答案 0 :(得分:0)

尝试此查询:

Produk A
   - spek 1
   - spek 2
   - spek 3
   - spek 4       
Produk B
   - spek 1
   - spek 2
produk C

此查询执行自我加入,并会列出每个用户以及他SELECT yt1.*, COALESCE(yt2.referral_count, 0) FROM yourtable yt1 LEFT JOIN ( SELECT t1.userid, COUNT(*) AS referral_count FROM yourtable t1 INNER JOIN yourtable t2 ON t1.userid = t2.referralcode GROUP BY t1.userid ) yt2 ON yt1.userid = yt2.userid; 出现的推荐代码的数量。

答案 1 :(得分:0)

此代码将在一个查询中完成工作。用'tbName'替换你的表名 经过测试和工作

SELECT countval, userid, email, address
FROM tbName t1 LEFT JOIN
(
    SELECT COUNT(t2.userid) ASs countval, tt.userid AS xx
    FROM tbName t2
    GROUP BY t2.referralcode
) t3
ON t3.xx = t1.userid

<强>输出:

+-------+-----+------+
| count | uid | name |
+-------+-----+------+
|   3   |  1  | abc  |
|   2   |  2  | xyz  |
|   5   |  3  | kmn  |
+-------+-----+------+