0

这是一个相当复杂的项目,它的设置方式有特定的原因,但为了便于学习,我只用名称替换了这个主题。

例如,我有两个表:

服务器 (存储唯一的服务器名称)

  • server_id(唯一标识)
  • 服务器名称

客户(存储公司中的所有客户)

  • server_id(匹配servers表中的唯一 ID)
  • .. 其他栏目

我要做的是列出第一个表中不同的服务器名称,以及使用每个服务器 ID 的客户端数量。但我不想返回服务器“id”,而是返回“名称”。现在我有这个:

SELECT DISTINCT server_id, count(server_name) AS count 
  FROM clients 
 GROUP BY server_id

这将返回服务器 ID 而不是名称。我该如何解决?顺便说一句,完全是 SQL 和 mySQL 的初学者。

4

1 回答 1

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

于 2013-05-15T19:59:32.663 回答