cs_Malkuth
Messages postés268Date d'inscriptionsamedi 22 février 2003StatutMembreDernière intervention24 avril 20134 8 juil. 2006 à 16:24
Le Problème Vient sans dante que tu ne passe pas par une jointure:
Une jointure est un mécanisme qui permet de faire correspondre
entre elle plusieurs table, par défaut les table ont une jointure
de type CROSSJOIN : Toutes les ligne de chaque table sont associé
a toutes les lignes des autres Tables.
Exemple :
Les tables
Tbl1:ID,DATA_A;
Tbl2 ID,FID,DATA_B;
Les Données :
Tbl1
ID DATA_A
1 10
2 20
Tbl2
FID DATA_B
1 15
2 25
Requette :
SELECT Tbl1.ID,Tbl2.FID FROM Tbl1, Tbl2
OU
SELECT Tbl1.ID,Tbl2.FID FROM Tbl1 CROSSJOIN Tbl2
Resultat :
Tbl1.ID Tbl2.FID
1 1
1 2
2 1
2 2
Les Jointures INNER JOIN: Ellse permette de faire correspondre
les lignes selon certains critères:
Requette :
SELECT Tbl1.ID,Tbl2.FID FROM Tbl1 INNER JOIN Tbl2 ON Tbl1.ID=Tbl2.FID
Resultat :
Tbl1.ID Tbl2.FID
1 1
2 1
Voilà qui resemble a ce que tu veux
Il manque maintenant une condition :
Requette :
SELECT Tbl1.ID,Tbl2.FID FROM Tbl1 INNER JOIN Tbl2 ON Tbl1.ID=Tbl2.FID WHERE Tbl1.ID=1
Resultat :
Tbl1.ID Tbl2.FID
1 1
Appliquer a ta requette voilà ce que ca donnerai:
Requette :
select
visiteur.id,
visiteur.ip,
visite.date,
infos.referer,
infos.mot
from
visiteur
INNER JOIN visite
ON visiteur.id=visite.id
INNER JOIN infos
ON visiteur.id=infos.id
WHERE
visiteur.id=1;
cs_Malkuth
Messages postés268Date d'inscriptionsamedi 22 février 2003StatutMembreDernière intervention24 avril 20134 8 juil. 2006 à 16:34
PS :
Les Jointures sont une des fonctionnaliter les plus importante de SQL
si tu veut avancer dans le dévelopement de base de donnée il est important
que tu recherche de la documentton sur cet aspect du sql (CROSSJoiN et INNER JOIN
ne sont pas les seules type de jointure) Va voir sur MSDN (mais attention
certaine parti sont spécifique a SQL Server), je ne connait pas de ressource
sur MySQL mais je suis sur qu'il en existe( si quelqu'un en connai ...).