jointure sur 3 tables

jointure sur 3 tables - SQL/NoSQL - Programmation

Marsh Posté le 10-02-2010 à 22:38:30    

Plop

 

Je poste ici pour un petit coup de main, j'ai beaucoup de mal avec les requêtes SQL quand ça devient un peu complexe...
Je suppose que c'est pas compliqué mais les jointures tout ça ça me dépasse complètement  :(
Voilà mon souci. Je bosse sur un site de réservation de salle tout simple. Pour une recherche je voudrais afficher le bâtiment dans lequel se trouve la salle trouvée. J'ai donc ces tables :
SALLE
-------
id
nomsalle
numaile

 

AILE
------
id
nomaile
numbatiment

 

BATIMENT
------
id
nombatiment

 

Je fais ma recherche sur NOMSALLE (genre la salle A120, enfin truc bateau de fac quoi). J'aimerai afficher le batiment correspondant, et comme vous vous en doutez, AILE.numbatiment correspond à BATIMENT.id et SALLE.numaile correspond à AILE.id (une salle est dans une aile qui est dans un bâtiment).

 

J'aimerai donc récupérer le BATIMENT.nombatiment en ayant juste l'id de la salle. Comment je peux faire pour joindre mes 3 tables ?

 

Merci d'avance, si c'est pas clair n'hésitez pas à le signaler

 

Précision: je suis sous MySQL.


Message édité par garfunk71 le 10-02-2010 à 23:06:17
Reply

Marsh Posté le 10-02-2010 à 22:38:30   

Reply

Marsh Posté le 11-02-2010 à 09:55:57    

Voici :

Select
     S.nomsalle,
     B.nombatiment
From
     Batiment B,
     Aile A,
     Salle S
Where
     B.id = A.numbatiment
 And S.numaile = A.id

Reply

Marsh Posté le 11-02-2010 à 10:02:38    

Non.
Ca, oui :

Code :
  1. SELECT
  2.      S.nomsalle,
  3.      B.nombatiment
  4. FROM
  5.      Batiment B
  6.      INNER JOIN Aile A ON B.id = A.numbatiment
  7.      INNER JOIN Salle S ON S.numaile = A.id


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 11-02-2010 à 10:08:41    

Citation :

Non.

 
Si. Ca revient au même.
SVP, ne commençons pas un niéme débat sur les goûts et les couleurs. Alors au lieu de dire "Non" aux solutions des autres quand elles marchent, dire "Ou alors ceci...".

Message cité 1 fois
Message édité par olivthill le 11-02-2010 à 10:10:36
Reply

Marsh Posté le 11-02-2010 à 10:52:20    

Merci beaucoup. Les deux fonctionnent, y'a t il une différence, par exemple en termes de performances ?
Même si l'appli ne sera pas utilisée par beaucoup de monde, ça peut être intéressant de le savoir :)

Reply

Marsh Posté le 11-02-2010 à 13:52:33    

Au niveau des perfs pas de changements.
 
Si t'en choisit une prend celle d'Harkonnen qui est "normalisée"

Reply

Marsh Posté le 11-02-2010 à 13:58:14    

olivthill a écrit :

Citation :

Non.

 
Si. Ca revient au même.
SVP, ne commençons pas un niéme débat sur les goûts et les couleurs. Alors au lieu de dire "Non" aux solutions des autres quand elles marchent, dire "Ou alors ceci...".


Je ne reviendrais pas sur l'argumentation que j'ai maintes fois sorti à ce sujet. Je t'invite à aller la consulter dans le topic "blabla@SQL". Alors oui, ta solution marche, mais c'est une source potentielle de gros souci si on s'en sert mal ou si on ne fait pas gaffe.


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Sujets relatifs:

Leave a Replay

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