2010-05-19 5 views
0

La requête ci-dessous fonctionne très bien. Il tire les champs de deux tables MySQL, "comment" et "login". Il le fait pour les lignes où "nom d'utilisateur" dans la table "login" est égal à la variable "$ profile". Il tire également des champs pour les lignes où "loginid" dans la table "comment" est égal à "loginid" qui est également tiré de "login".Ajout d'une troisième table à une requête de jointure à deux tables

Je voudrais extraire des données à partir d'une troisième table appelée « soumission », qui a les champs suivants:

submissionid loginid title url displayurl datesubmitted 

Je voudrais tirer des champs de lignes dans la « soumission » où « loginid » est égal à la "loginid" qui est déjà tiré des deux autres tables, "login" et "commentaire".

Comment est-ce que je peux faire ceci?

Merci à l'avance,

John

Requête:

$sqlStrc = "SELECT l.username, l.loginid, c.loginid, c.commentid, c.submissionid, c.comment, c.datecommented 
       FROM comment AS c 
     INNER JOIN login AS l 
       ON c.loginid = l.loginid 
       WHERE l.username = '$profile' 
      ORDER BY c.datecommented DESC 
       LIMIT 10"; 
+1

Je vois que vous trouvé une grande partie de ma réponse sur votre double question utile, mais pas upvote! http://stackoverflow.com/questions/2853318/join-with-three-tables – webbiedave

+0

Salut Dave ... J'apprécie votre aide, mais je n'ai pas été très loin de ma dernière question. Ce que je poste ici, c'est ce que j'utilisais avant de poster cette dernière question. – John

Répondre

3
SELECT l.username,l.loginid,c.loginid,c.commentid,c.submissionid,c.comment, 
c.datecommented,s.submissionid,s.loginid,s.title,s.url,s.displayurl,s.datesubmitted 

FROM comment AS c 

INNER JOIN login AS l ON c.loginid = l.loginid 
INNER JOIN submission AS s ON s.loginid = l.loginid 

WHERE l.username = '$profile' 

ORDER BY c.datecommented DESC 

LIMIT 10 
Questions connexes