Requête avec jointure et multiples conditions

Requête avec jointure et multiples conditions - SQL/NoSQL - Programmation

Marsh Posté le 10-06-2011 à 17:47:55    

Salut,
 
J'ai du mal a trouver la syntaxe pour un type de requête. J'ai une base de données qui contient entre autres les tables suivantes :
 
Host : host_id, hostname
Hostgroup : hg_id, hg_name
 
et la table pivot hostroup_relation : host_host_id,hostgroup_hg_id
 
Ce que je souhaite, c'est obtenir la liste des hostname appartenant à la fois aux hostgroup "toto" et "tata". Bien évidemment ma requête  
 
SELECT h1.host_name FROM host h1
INNER JOIN hostgroup_relation hgr ON hgr.host_host_id = h1.host_id
INNER JOIN hostgroup hg ON hgr.hostgroup_hg_id = hg.hg_id  
WHERE  hg.hg_name = 'toto' AND hg.hg_name = 'tata'
 
ne marche pas (et ca me semble logique).
 
Question intermédiaire : Si vous avez des bouquins / tuto à me suggérer, c'est aussi bienvenu. Je n'ai pas besoin de devenir un expert en conception de base de données, mais je serai amené a en requêter pas mal.
 

Reply

Marsh Posté le 10-06-2011 à 17:47:55   

Reply

Marsh Posté le 13-06-2011 à 15:30:46    

Il faut faire les jointures deux fois

Code :
  1. SELECT h.host_name FROM host h
  2. INNER JOIN hostgroup_relation hgr1 ON hgr1.host_host_id = h.host_id
  3. INNER JOIN hostgroup hg1 ON hgr1.hostgroup_hg_id = hg1.hg_id
  4. INNER JOIN hostgroup_relation hgr2 ON hgr1.host_host_id = h.host_id
  5. INNER JOIN hostgroup hg1 ON hgr2.hostgroup_hg_id = hg2.hg_id    
  6. WHERE  hg1.hg_name = 'toto' AND hg2.hg_name = 'tata'


Message édité par Paulp le 13-06-2011 à 15:31:11
Reply

Marsh Posté le 14-06-2011 à 13:50:13    

Ca marche parfaitement, merci.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed