SQL - выберите между 3 таблицами - PullRequest
0 голосов
/ 01 июня 2011

У меня есть 3 таблицы:

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

В первой таблице хранятся все хосты, во второй - все группы, а в последней указано, какой группе принадлежит каждый хост.

Обратите внимание, чтоhosts_hostgroup имеет два разных имени столбца a и b.

Какой запрос дать мне хосты, принадлежащие какой-либо группе?

Ответы [ 2 ]

2 голосов
/ 01 июня 2011
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'
2 голосов
/ 01 июня 2011
SELECT hosts.* FROM hosts
INNER JOIN hosts_hostgroup ON hosts.host_id=hosts_hostgroup.a
WHERE hosts_hostgroup.b=(some id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...