繁体   English   中英

带有左连接的两个表的子查询

[英]subquery on two tables with left join

我有两张桌子,一张球员桌和一张技能桌。 我想在玩家表中找到最常见的技能类型。 我正在尝试练习使用子查询。 像这样的示例的子查询将如何工作? 下面是表格和我的尝试。

球员表

+-------------+------------------+
| player_name | player_skills_id |
+-------------+------------------+
| player 1    | 1                |
+-------------+------------------+
| player 2    | 2                |
+-------------+------------------+
| player 3    | 2                |
+-------------+------------------+
| player 4    | 1                |
+-------------+------------------+
| player 5    | 1                |
+-------------+------------------+
| player 6    | 1                |
+-------------+------------------+

技能表

+------------------+---------------+
| player_skills_id | player_skills |
+------------------+---------------+
| 1                | bad           |
+------------------+---------------+
| 2                | good          |
+------------------+---------------+
| 3                | great         |
+------------------+---------------+

我想要的表:

+---------------+-------+
| player skills | count |
+---------------+-------+
| bad           | 4     |
+---------------+-------+
| good          | 2     |
+---------------+-------+
| great         | 0     |
+---------------+-------+

我的尝试:

SELECT players.player_name 
FROM players 
LEFT JOIN skills
ON players.player_skills_id = skills.player_skills_id;
/* I am not sure how the subquery part works from here */

这将列出每个技能级别以及每个级别的玩家数量。

SELECT s.player_skills, COUNT(*) AS count
FROM skills s
LEFT JOIN players p ON s.player_skills_id = p.player_skills_id
GROUP BY s.player_skills_id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM