mySQL - 从另一个表中查询具有与当前表中相同ID的字段

时间:2013-05-15 19:55:03

标签: php mysql sql

这是一个非常复杂的项目,具有设置方式的具体原因,但为了便于学习,我用名称替换了主题。

例如,我有两个表:

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

  • server_id(唯一ID)
  • server_name

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

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

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

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

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

1 个答案:

答案 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