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

PHP & Base de données Discussion :

Trier selon une autre tables [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 32
    Par défaut Trier selon une autre tables
    Bonjour,

    Sur mon site j'ai une table images qui contient des images.
    id, url, ...

    Et une table commentaire qui contient les commentaires.
    id_image, id_user, commentaire

    Lorque que l'utilisateur "id_user" se connecte, j'aimerais que la requete qui affiche les images (SELECT * FROM images) me renvoit d'abord les images où id_user n'a pas laissé de commentaires, puis après celle ou il l'a fait ?

    Comment est-ce possible ?
    Peut-on placer des requêtes dans le ORDER BY ?

    Merci de votre aide .

    Cordialement,

    François

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT ALL ...
    # On récupère les images commentées par notre user, et celle qui ne le sont pas grâce à la jointure externe
    # Celles qui ne sont pas commentées auront des valeurs NULL pour les champs de la table commentaires
    FROM images LEFT OUTER JOIN commentaires ON images.id = commentaires.image AND commentaires.utilisateur = $utilisateur
    # Les images n'ayant pas de commentaire seront placées en premier
    # Avec MySQL NULL < toute autre valeur
    ORDER BY commentaires.image ASC, ...

  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,

    Dans le cas d'un jointure externe le SGBD appliquera le marqueur NULL aux occurrence n'ayant pas de jointure possible.
    Il est donc possible de faire un ORDER BY sur une des valeurs jointe cependant il faut faire attention.
    Chaque SGBD agit différemment sur les NULL et les place tantôt en début tantôt en fin.

    Je conseille de lire ce cours pour être plus a l'aise avec les NULLS

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 32
    Par défaut
    Citation Envoyé par Séb. Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT ALL ...
    # On récupère les images commentées par notre user, et celle qui ne le sont pas grâce à la jointure externe
    # Celles qui ne sont pas commentées auront des valeurs NULL pour les champs de la table commentaires
    FROM images LEFT OUTER JOIN commentaires ON images.id = commentaires.image AND commentaires.utilisateur = $utilisateur
    # Les images n'ayant pas de commentaire seront placées en premier
    # Avec MySQL NULL < toute autre valeur
    ORDER BY commentaires.image ASC, ...


    Merci bien !
    Ca fonctionne parfaitement.

    Et merci a toi pour le complément kazou.

    Bonne soirée

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

Discussions similaires

  1. [AC-2010] Alimneter une table avec les champs d'une autre table selon critères
    Par tibao276 dans le forum Access
    Réponses: 2
    Dernier message: 28/02/2014, 21h26
  2. [MySQL] Trier en fonction des occurences d'une autre table
    Par Dev222 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 24/06/2013, 11h43
  3. Réponses: 3
    Dernier message: 26/03/2013, 17h47
  4. Choisir une colonne selon un champs d'une autre Table
    Par DzBadBoy dans le forum Access
    Réponses: 6
    Dernier message: 03/10/2009, 16h01
  5. Réponses: 9
    Dernier message: 21/02/2008, 10h13

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