Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/12/2011, 18h27   #1
Membre habitué
 
Inscription : septembre 2004
Messages : 244
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 244
Points : 110
Points : 110
Par défaut compréhension d'un syntaxe

Bonjour,

Je suis entrain de lire un livre, et j'aimerai savoir si j'ai bien interprété l'exemple qui encore confus dans ma tête :

Soit la table :
Table Pilote

Code :
1
2
3
4
5
6
brevet	|       nom 	| nbHVol| compa | chefPil
-----------------------------------------------------------
PL-1| Pierre Lamothe    | 450  | AF     |PL-4
PL-2| Didier Linxe      | 900  | AF     |PL-4
PL-3| Christian Soutou  | 1000 | SING   |
PL-4| Henri Alquié      | 3400 | AF     |
La requete :
Code :
1
2
3
4
SELECT p1.brevet, p1.nom
	FROM Pilote p1, Pilote p2
	WHERE p1.chefPil = p2.brevet
AND p2.nom LIKE '%Alquié%';

Le résulat:
Code :
1
2
3
brevet 	nom
PL-1 	Pierre Lamothe
PL-2 	Didier Linxe

Si j'interprete bien le résulat le but et d'extraire les colonne brevet et nom de table p1
SELECT p1.brevet, p1.nom
J'extrait chaque ligne de la table p1 où p1.chefPil = p2.brevet

1ère imcompréhension, pourquoi il me renvoie que 2 lignes :
brevet nom
PL-1 Pierre Lamothe
PL-2 Didier Linxe

Ne devrait'il pas me renvoyer 3 lignes:
brevet nom
PL-1 Pierre Lamothe
PL-2 Didier Linxe
PL-4 Henri Alquié

2eme imcompréhension la ligne
AND p2.nom LIKE '%Alquié%';
=> cela signifie t'il que fait la recherche que sur cette ligne là ?

Merci beaucoup pour votre aide
omelhor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 19h25   #2
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
Saluton,
Tout d'abord il vaut mieux écrire les jointures comme ceci
Code :
1
2
3
4
5
SELECT p1.brevet, p1.nom
	FROM Pilote p1
        INNER JOIN Pilote p2
	 ON p1.chefPil = p2.brevet
WHERE p2.nom LIKE '%Alquié%';
Quant au reste de ta question ici la condition du LIKE ne sert strictement à rien au vu de ce jeu d'essai.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 23h02   #3
Membre habitué
 
Inscription : septembre 2004
Messages : 244
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 244
Points : 110
Points : 110
merci beaucoup
omelhor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 09h34   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 333
Points : 18 333
Envoyer un message via MSN à CinePhil
Citation:
Ne devrait'il pas me renvoyer 3 lignes:
brevet nom
PL-1 Pierre Lamothe
PL-2 Didier Linxe
PL-4 Henri Alquié
Non.
La requête cherche les pilotes dont le chef a un nom qui contient 'Alquié'.
Alquié n'est pas son propre chef donc il n'apparaît pas dans le résultat.

Mais il est vrai qu'avec le jeu de données présenté, la jointure ne donnera de toute façon que les deux pilotes qui ont un chef.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h33.


 
 
 
 
Partenaires

Hébergement Web