Précédent   Forum du club des développeurs et IT Pro > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 04/01/2013, 18h56   #1
gianniP21
Invité de passage
 
Inscription : janvier 2013
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2013
Messages : 3
Points : 0
Points : 0
Par défaut requete SQL (similarité de colonne)

bonjour,

je suis nouveau sur ce forum et je debute egalement en PHP / SQL donc veuillez excuser mon langage peut etre inaproprié.

J'ai realisé une base de donnée assez simple

ID - NOM - ADRESSE DEPART - ADRESSE ARRIVEE
1 - paul - marseille - paris
2 - frank - lyon - paris
3 - ludo - paris - marseille
4 - mel - nice - paris
5 - emile - paris - nice ...


Je recherche desesperement la requete me permettant de selectionner tous ceux qui ont en commun l adresse de depart et d'arrivée . (ceux chez qui l'adresse de depart correspond a l adresse d 'arrivee de l'autre )

Soit par exemple , dans ce cas une reponse :

-> paul et ludo (paris marseille)
-> mel et emilie (paris-nice)

En vous remerciant par avance .
gianniP21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2013, 20h16   #2
Exia93
Membre Expert
 
Homme
Étudiant
Inscription : avril 2012
Messages : 605
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2012
Messages : 605
Points : 1 057
Points : 1 057
Bonsoir,

il faut que tu fasse une auto-jointure,

un petit lien du cours sur les jointure d' SQLPro

dans l'idée il faut que tu fasse une auto-jointure sur ta table,

exemple pour la table personne :
Code :
1
2
SELECT p1.id, p1.nom, p2.id, p2.nom FROM personne p1
INNER JOIN personne p2
cette requête va provoquer un produit cartésien(pour toutes les lignes de p1 la jointure va lier toutes les lignes de p2) vue qu'aucune clause de jointure est utilisée,

pour contrer ça il suffit d'ajouter une clause de jointure,

Code :
1
2
SELECT p1.id, p1.nom, p2.id, p2.nom FROM personne p1
INNER JOIN personne p2 ON p1.nom = p2.nom
donc ici seul ceux ayant le même nom dans la table p1 et p2 seront selectionnées.

Pour toi il faut donc lier les personnes ayant l'adresse de départ = l'adresse d'arrivé ET l'adresse d'arrivé = l'adresse de départ,

donc :
Code :
1
2
SELECT p1.id, p1.nom, p2.id, p2.nom FROM personne p1
INNER JOIN personne p2 ON p1.`ADRESSE DEPART` = p2.`ADRESSE ARRIVEE` AND p1.`ADRESSE ARRIVEE` = p2.`ADRESSE DEPART`;
Exia93 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2013, 21h27   #3
gianniP21
Invité de passage
 
Inscription : janvier 2013
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2013
Messages : 3
Points : 0
Points : 0
merci bcp pour votre reponse complete !

Je ne connaissais pas les auto jointures .
Je vais essayer de dechiffrer tout ca et je vous tiens au courant .

Merci encore
gianniP21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2013, 02h10   #4
gianniP21
Invité de passage
 
Inscription : janvier 2013
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2013
Messages : 3
Points : 0
Points : 0
bravo, ca marche directement sur phpmyadmin !

Malheureusement,
1. ma requete sql est incluse dans une page PHP¨et je n'arrive pas à afficher le resultat dessus car forcement le resultat n'est pas une unique variable mais un ensemble .

2. chaque resultat est doublé (forcement! ) mais ca cree un doublon

Comment pourrais afficher ca simplement sous forme :


-> paul et ludo (paris - marseille)
-> mel et emilie (paris - nice)
...

sans avoir :

paul ludo
ludo paul
mel emile
emile mel

encore merci
gianniP21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 15h29   #5
Celira
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 4 265
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java
Secteur : Industrie

Informations forums :
Inscription : avril 2007
Messages : 4 265
Points : 8 375
Points : 8 375
Pour l'affichage, ça dépend de comment tu as fait ta requête en PHP.
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [CODEINLINE=php][/CODEINLINE]
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h39.


 
 
 
 
Partenaires

Hébergement Web