mysql - Sql join 4个表计数行数

标签 mysql sql

我有 4 个类似形式的表格。这些表的结构如下:

id  team_id position_id  country_id
1       1     1              3
2       1     1              3
3       2     2              3
4       3     3              3

我可以使用以下方法计算一个表的行数:

SELECT count(position_id) as count1, position_id 
FROM players1
where country_id = 3
group by position_id;

得到的结果为:

position_id  count1
    1         54
    2         41
    3         39
    4         32

我想连接 4 个表并希望得到如下结果:

position_id  count1   count2   count3   count4
    1         54        42       51       61
    2         41        40       49       59
    3         39        29       44       50
    4         32        21       37       47

你能帮我写这个sql吗?

最佳答案

据我了解你的问题。执行此 Mysql 查询。

SELECT 
d1.position_id AS Positions_Id,
d1.count1 AS count1,
d2.count1 AS count2,
d3.count1 AS count3,
d4.count1 AS count4
FROM (
SELECT position_id, COUNT(position_id) AS count1
FROM players1
WHERE country_id=3
GROUP BY position_id) AS d1
LEFT JOIN (
SELECT position_id, COUNT(position_id) AS count1
FROM players2
WHERE country_id=3
GROUP BY position_id 


) AS d2 ON d2.position_id = d1.position_id
LEFT JOIN (
SELECT position_id, COUNT(position_id) AS count1
FROM players3
WHERE country_id=3
GROUP BY position_id 

) AS d3 ON d3.position_id = d1.position_id
LEFT JOIN (
SELECT position_id, COUNT(position_id) AS count1
FROM players4
WHERE country_id=3
GROUP BY position_id 

) AS d4 ON d4.position_id = d1.position_id


关于mysql - Sql join 4个表计数行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59943981/

相关文章:

php-mysql 版本与 Mysql 服务器冲突

php - 在mysql中从第二列开始选择表列名

php - 显示通过单击按钮登录的用户名

mysql - 使用 INFORMATION_SCHEMA.COLUMNS 的外键

sql - 使用变量时的查询性能

MySQL 跨多个表查询文本

php - 优化 Nginx

python - 如何从 MySQL 中一个非常大的表的特定列中随机选择一些值,比如 1000 个值?

Mysql子查询还是多个查询?

mysql - 在 group by 期间,我需要采用一个未在 group by 中使用的变量,我也不想采用它的聚合函数(我想要它原样)