如何从左连接结果中获取不同的数据?

时间:2016-05-27 08:52:19

标签: php mysql sql

我有两张表serversserver_group。我试过left join,但我的问题是服务器组ID和名称的两倍。我需要服务器组ID和名称不同。请帮帮我。

左连接

SELECT sg.id, sg.name, s.servers_id, s.title
FROM server_group sg
    LEFT JOIN servers s ON sg.id = s.group_id

server_group

id name
1  google   
2  yahoo
3  msn

服务器

servers_id| title| name|
2           yahoo   yahoo
2           yahoo   yahoo
3           msn     msn

我的查询结果是

id| name |  servers_id|  title|
2   yahoo     2          yahoo
2   yahoo     2          yahoo
3   msn       3          msn
1   google    null       null

我需要id和名字不同。在我的列表页面中,我需要获得两个表格结果。当我点击server_group服务器时,详细信息将显示。Please click here for sample view

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT sg.id, sg.name, s.servers_id, s.title 
FROM server_group sg 
LEFT JOIN (
   SELECT DISTINCT servers_id, title
   FROM servers
) s ON sg.id = s.servers_id

因此,您需要加入一个仅包含 distinct 值的派生表,而不是加入servers表。