这是一个非常复杂的项目,具有设置方式的具体原因,但为了便于学习,我用名称替换了主题。
例如,我有两个表:
服务器(存储唯一的服务器名称)
客户(存储公司中的所有客户)
server_id
(匹配servers
表中的唯一ID)我要做的是列出第一个表中的不同服务器名称,以及使用每个服务器ID的客户端数量。但是,我不想返回服务器“id”,而是返回“名称”。现在我有这个:
SELECT DISTINCT server_id, count(server_name) AS count
FROM clients
GROUP BY server_id
这将返回服务器ID而不是名称。我该如何解决这个问题?顺便说一下SQL和mySQL的初学者。
答案 0 :(得分:1)
尝试
SELECT s.server_id,
s.server_name,
COUNT(*) count_clients
FROM clients c JOIN servers s
ON c.server_id = s.server_id
GROUP BY s.server_id, s.server_name
输出:
| SERVER_ID | SERVER_NAME | COUNT_CLIENTS |
-------------------------------------------
| 1 | server1 | 2 |
| 2 | server2 | 4 |
<强> SQLFiddle 强>