Jointures multiples !help!

Jointures multiples !help! - SQL/NoSQL - Programmation

Marsh Posté le 18-03-2004 à 15:42:08    

bonjour,
 
je vous balance en vrac ma bdd, sachant que j'aimerais recupérer les données de 3 tables sur 4:
 
  SECTION
  sectionID
  sectionNOM
(1,N)
       |
       |
  JOINT
  *sectionID
  *msgID
       |
       |
(1,N)       (1,1)  (1,N)
MESSAGE--------UTILISATEUR
msgID                    userID
msgTITRE                 userNOM
msgCORPS                 userMAIL
msgDATE
*userID
 
Voila, donc j'aimerais pouvoir afficher l'ensemble des données des tables UTILISATEUR, MESSAGE et RUBRIQUE pour 1 enregistrement dans la table JOINT
 
MERCI D'AVANCE :jap:


Message édité par lkolrn le 18-03-2004 à 15:48:10
Reply

Marsh Posté le 18-03-2004 à 15:42:08   

Reply

Marsh Posté le 18-03-2004 à 15:54:11    

SELECT * FROM joint j JOIN section s on j.sectionID=s.sectionID JOIN message m ON j.msgID=m.msgID JOIN utilisateur u ON m.userID=u.userID
 
Et voila :)
 
Sinon juste une question : un message peut être dans plusieurs section ?

Reply

Marsh Posté le 18-03-2004 à 16:20:30    

:bounce: ct le 'JOIN ON' qui me manquait [:aras qui rit]  
 
juste la réponse: ui, je veux laisser à l'utilisateur (ou à l'administrateur) la possibilité de poster un meme message dans plusieurs rubriques (ca peut arriver qu'une question/réponse/news soit valable pour plusieurs thèmes différents, pourquoi po  [:airforceone] [:backfire]

Reply

Marsh Posté le 18-03-2004 à 16:24:47    

est-ce que

SELECT * FROM joint j
JOIN section s USING (sectionID)
JOIN message m USING (msgID)
JOIN utilisateur u USING (userID)

est également valable :??:
 
Autre chose: comment trier les resultats par rubrique (apparemment ORDER BY marche po ici) ???


Message édité par lkolrn le 18-03-2004 à 16:59:50
Reply

Marsh Posté le 18-03-2004 à 17:39:51    

:bounce: siouplé! :bounce:


Message édité par lkolrn le 18-03-2004 à 17:40:11
Reply

Marsh Posté le 18-03-2004 à 17:47:11    

La syntaxe est valable avec MySQL
 
 
SELECT * FROM joint j JOIN section s on j.sectionID=s.sectionID JOIN message m ON j.msgID=m.msgID JOIN utilisateur u ON m.userID=u.userID ORDER BY s.sectionNOM
 

Reply

Marsh Posté le 29-03-2004 à 15:17:18    

merci à vous [:skyx@v] :jap:

Reply

Marsh Posté le 29-03-2004 à 16:00:51    

c quoi  lavantage du join ? moi jutilise tjs un where

Reply

Marsh Posté le 29-03-2004 à 21:40:24    

moi je trouve ça plus lisible le join (conceptuellement ça n'a rien à voir avec une clause WHERE :) )
 
Sinon pour le SGBD en général c'est pareil car le where utilisé comme un critère de jointure est reconnu et interprété comme une jointure

Reply

Marsh Posté le 29-03-2004 à 23:15:59    

c clair moi aussi je fais des join...
 
bien que je l'ai vu, g pas bien compris les outer join, inner join, etc...faudrait que j'étudies plus la question


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 29-03-2004 à 23:15:59   

Reply

Marsh Posté le 30-03-2004 à 09:16:49    

sinon le join ca marche avec tout les sgbd ? et access ?
 
 
a oui aussi est ce que le where est moins performant qu'un join


Message édité par red faction le 30-03-2004 à 09:33:03
Reply

Marsh Posté le 30-03-2004 à 10:26:01    

red faction a écrit :

sinon le join ca marche avec tout les sgbd ? et access ?
non, oui
 
 
a oui aussi est ce que le where est moins performant qu'un join
dépend du SGDB et de la requète

Reply

Marsh Posté le 30-03-2004 à 11:34:56    

:jap: ok


Message édité par red faction le 30-03-2004 à 11:50:04
Reply

Sujets relatifs:

Leave a Replay

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