2013-05-15 66 views
0

這是一個相當複雜的項目,它具有設置方式的特定原因,但爲了便於學習,我已將主題替換爲只是名字。mySQL - 從另一個表中查詢具有與當前ID相同的ID的字段

例如,我有兩個表:

服務器(存儲唯一的服務器名稱)

  • SERVER_ID(唯一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。

+0

您可以使用別名....或東西的混合....一個建議你做一個sqlfiddle與你的表結構....或向我們展示你的表結構和結果數據的例子(預期數據) – Hackerman

+0

你可能想看看我nto [MySql Joins](http://dev.mysql.com/doc/refman/5.0/en///join.html)。如果這不是您正在尋找的答案,您可以通過使用一些示例代碼改進您的問題來獲得更好的答案。 –

回答

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

+0

謝謝!它工作完美。嘗試時我正在使用JOIN,但沒有正確設置它。 – user961300

+0

@ user961300不客氣。很高興幫助:D – peterm

相關問題