IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

compréhension d'un syntaxe


Sujet :

Requêtes MySQL

  1. #1
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Points : 267
    Points
    267
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Tout d'abord il vaut mieux écrire les jointures comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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)

  3. #3
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Points : 267
    Points
    267
    Par défaut
    merci beaucoup

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    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 Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. compréhension d'une syntaxe
    Par omelhor dans le forum Langage
    Réponses: 3
    Dernier message: 18/03/2012, 00h23
  2. Compréhension d'une syntaxe
    Par omelhor dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/12/2011, 17h03
  3. Réponses: 4
    Dernier message: 18/02/2009, 12h53
  4. [SQL/ACCESS/VBA]problème de compréhension de syntaxe
    Par satch24 dans le forum VBA Access
    Réponses: 5
    Dernier message: 22/06/2007, 16h18
  5. Compréhension de syntaxe
    Par dzincou dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 13/06/2007, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo