试图计算并加入两个mysql表

时间:2013-04-25 12:52:44

标签: mysql sql join count

我有一个带有两个表的mysql数据库:

db.names

name | Level
------------
bob    4
john   3
andy   2
dave   1

db.data

entry | user
------------
dfds    bob
hdes    bob
sers    john
iuid    dave
yyuy    john

我正在尝试计算每个用户已经制作了多少次并且还显示了他们的等级。光线看起来像这样:

count(*) | user | Level
-----------------------
2         bob     4
2         john    3
1         dave    1

我尝试使用左连接和不同连接,但似乎可以掌握逻辑。帮助将非常感激

1 个答案:

答案 0 :(得分:4)

您需要使用INNER JOIN基本上加入表,因为您只想显示两个表上都存在的记录。要计算实例数,您需要使用聚合函数COUNT()GROUP BY子句。

SELECT  COUNT(*) TotalCount,
        a.Name,
        a.Level
FROM    names a
        INNER JOIN data b
            ON a.Name = b.user
GROUP   BY a.Name, a.Level

要进一步了解联接,请访问以下链接:

输出

╔════════════╦══════╦═══════╗
║ TOTALCOUNT ║ NAME ║ LEVEL ║
╠════════════╬══════╬═══════╣
║          2 ║ bob  ║     4 ║
║          2 ║ john ║     3 ║
║          1 ║ dave ║     1 ║
╚════════════╩══════╩═══════╝