我有两张表servers
和server_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服务器时,详细信息将显示。
答案 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
表。