SQL - 在3个表之间选择

时间:2011-06-01 16:39:55

标签: sql database

我有3张桌子:

hosts (host_id, name, address, template_id);
hostgroup (hostgroup_id, name);
hosts_hostgroup (a, b);

第一个表保留所有主机,第二个表保留所有组,最后一个表表示哪个组属于每个主机。

请注意,hosts_hostgroup有两个不同的列名ab

哪个查询给我属于某个组的主机?

2 个答案:

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