Aide pour requete SQL complexe (pour moi :p)

Répondre
Sammuel
le 22/01/2007 à 22:04
Sammuel
Salut à tous !

J'aimerais avoir votre avis sur une requete assez complexe (pour moi).

Ma requete est la suivante :

SELECT membre.idmembre,membre.pseudo,membre.idville,ville.idville,ville.nom AS villenom,region.idregion,region.nom AS regionnom FROM membre,ville,region WHERE membre.idville = ville.idville AND membre.idregion = region.idregion


Cette requete n'est pas terminé, car j'aimerais aussi afficher le statut du membre (on line/off line) ainsi que la photo du membre dans le cas ou il en aurait au moins une d'enregistrer dans la base de donnée.

Au niveau des photos, la table est du genre :
* idphoto
* idmembre

1 membre peut avoir plusieurs photos et j'aimerais afficher une photo aléatoirement dans le cas ou le membre en a ajouté une. Sinon, j'affiche une image du genre "Pas de photo".

Au niveau du statut du membre (on line/off line), la table est du genre :
* idonline
* idmembre

J'aimerais afficher le statut "On line" si le membre est en ligne est "Off line" s'il ne l'est pas.

Comment intégrer dans la requete ci dessus, la requete pour la photo ? et celle pour récupérer le statut du membre.

Merci !
LA GLOBULE
le 23/01/2007 à 12:16
LA GLOBULE
SELECT membre.idmembre,membre.pseudo,membre.idville,ville.idville,ville.nom AS villenom,region.idregion,region.nom AS regionnom, on_off_line.status, photo.idphoto
FROM membre,ville,region, on_off_line
LEFT JOIN photo ON membre.idmembre = photo.idmembre
WHERE membre.idville = ville.idville
AND membre.idregion = region.idregion
AND membre.idmembre = on_off_line.idmembre

Un truc comme ca (pour la table online / offline, c'est une jointure classique, et pour les photos, comme la photo n'est pas toujours présente, il faut faire un LEFT JOIN comme ca, meme si le membre n'a pas de photo, la requete retournera quand meme un résultat).
Sammuel
le 23/01/2007 à 12:25
Sammuel
Merci La Globule !

Hum... au niveau de la requete pour la table online/offline. Le membre ne sera present dans cette table que si il est en ligne, donc ca ne va pas le faire ? Faut t'il faire un autre LEFT JOIN ?
Sammuel
le 23/01/2007 à 13:35
Sammuel
ok m'sieur ! :)

J'essaie ca tout de suite !

Sinon, dans cette requete... est ce un probleme de faire 5 jointures ?? est ce que cela va ralentir l'execution du script ?
Sammuel
le 23/01/2007 à 13:51
Sammuel
Pour le moment, j'essai d'ajouter le partie concernant la requete pour la photo avec LEFT JOIN, et quand je test dans PHPmyadmin, cela me retourne l'erreur :
#1066 - Table/alias: 'photo' non unique

:(
Sammuel
le 23/01/2007 à 14:21
Sammuel
ok c'est bon !
J'avais inclus la table photo dans le FROM :
FROM membre,ville,region,photo

Pour ca que ca ne fonctionnait pas :(

Merci encore La Globule !
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours