我有3张桌子:
hosts (host_id, name, address, template_id);
hostgroup (hostgroup_id, name);
hosts_hostgroup (a, b);
第一个表保留所有主机,第二个表保留所有组,最后一个表表示哪个组属于每个主机。
请注意,hosts_hostgroup
有两个不同的列名a
和b
。
哪个查询给我属于某个组的主机?
答案 0 :(得分:2)
SELECT hosts.* FROM hosts
INNER JOIN hosts_hostgroup ON hosts.host_id=hosts_hostgroup.a
WHERE hosts_hostgroup.b=(some id);
答案 1 :(得分:2)
SELECT h.*
FROM hosts h
INNER JOIN hosts_hostgroup hg ON hg.host_id = h.host_id
INNER JOIN hostgroup g ON g.hostgroup_id = hg.hostgroup_id
WHERE g.name = 'mygroupname'