尝试在两个mysql表上计数和联接
我有一个mysql数据库,有两个表: db.name尝试在两个mysql表上计数和联接,mysql,sql,join,count,Mysql,Sql,Join,Count,我有一个mysql数据库,有两个表: db.name name | Level ------------ bob 4 john 3 andy 2 dave 1 数据库数据 entry | user ------------ dfds bob hdes bob sers john iuid dave yyuy john 我试图做一个计数,计算每个用户有多少个入口,并显示他们的级别。所以灯光看起来像这样: count(*) | user | Lev
name | Level
------------
bob 4
john 3
andy 2
dave 1
数据库数据
entry | user
------------
dfds bob
hdes bob
sers john
iuid dave
yyuy john
我试图做一个计数,计算每个用户有多少个入口,并显示他们的级别。所以灯光看起来像这样:
count(*) | user | Level
-----------------------
2 bob 4
2 john 3
1 dave 1
我尝试过使用左连接和独立连接,但似乎能够掌握逻辑。非常感谢您的帮助您基本上需要使用
内部联接来联接表
,因为您只想显示两个表上都存在的记录。要计算它们的实例数,需要使用聚合函数count()
和groupby
子句
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 ║
╚════════════╩══════╩═══════╝
您基本上需要使用
内部联接来联接表,因为您只想显示两个表上都存在的记录。要计算它们的实例数,需要使用聚合函数count()
和groupby
子句
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 ║
╚════════════╩══════╩═══════╝