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 :

requete imbriquée question basique


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 162
    Par défaut requete imbriquée question basique
    Bonsoir,

    J'ai cette requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT idUser, COUNT(*) AS nb
    FROM tatable
    GROUP BY idUser
    ORDER BY nb DESC
    J'aimerai savoir si je peux directement via une requete rechercher le nom de l'user correspondant à idUser. Cette info se trouve dans une autre table.

    Je ne maitrise pas assez sql, mais en je verai un truc comme cela :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT idUser, COUNT(*) AS nb, JOIN 'name' FROM userTalbe where id=idUser AS nom
    FROM tatable
    GROUP BY idUser
    ORDER BY nb DESC

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 162
    Par défaut
    Deubleu deubleu ! (expression suisse ...)

    Je crois bien que j'ai résussi. Quelqu'un pourrai m'expertiser cette requete ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $database->setQuery(
    "SELECT `idUser`, COUNT(*) AS nb, `username`
    FROM `#__pecSsListing` L,`#__users` U  
    WHERE L.idUSer = U.id
    GROUP BY `idUser` ORDER BY nb DESC") ;
    $lines = $database->loadObjectList();
    Ce que je comprends pas c'est comment sql sait dans quelle table (L ou U) aller chercher les champs "idUser`, COUNT(*) AS nb, `username`" (2 tables pour 3 colonnes) ?

  3. #3
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Bonjour,

    Le SGBD n'a pas besoin du chemin complet pour s'y retrouver.
    Si il en avait besoin tu serait obligé de tout préfixer, même le nom de la base de données pour le moindre champ : maBase.maTable.monChamp.
    Même si en tu as la possibilité il n'est pas nécéssaire de préciser forcément le chemin complet.
    Seul quand il y a une ambiguïté le préfixage de la table (voir du la base de donnée) est obligatoire.
    Par exemple quand le champ existe dans deux tables que tu utilise dans ta requête il faudra préciser de quel table il s'agit.

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

Discussions similaires

  1. Question basique : une ou plusieurs requetes ?
    Par keaton7 dans le forum Débuter
    Réponses: 24
    Dernier message: 24/03/2009, 11h21
  2. Equivalent d'une requete imbriquée ??
    Par webtheque dans le forum Requêtes
    Réponses: 8
    Dernier message: 31/08/2004, 10h07
  3. Requetes imbriquées et jointures
    Par Emile Le Tueur* dans le forum Requêtes
    Réponses: 4
    Dernier message: 31/03/2004, 23h12
  4. Requete imbriquée sur Firebird ou Interbase
    Par Thib dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/03/2004, 09h00

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