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 :

Problème de jointure pour une requête [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    directeur hypermarché
    Inscrit en
    Avril 2009
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : directeur hypermarché

    Informations forums :
    Inscription : Avril 2009
    Messages : 227
    Points : 111
    Points
    111
    Par défaut Problème de jointure pour une requête
    Bonjour à tous,

    J'ai 2 tables :

    shop_client ( id_client, pseudo, etoiles )

    shop_amis ( id_ami, pseudo_connect, pseudo_ami )

    J'enregistre dans shop_client, l'ensemble des membres et j'enregistre dans pseudo_connect, le pseudo du membre connecté et dans pseudo_ami, les pseudos des membres amis.

    Je souhaite créér une requête qui me permette d'avoir la liste de tous les pseudos de shop_client à laquelle je retire le pseudo connecté et les pseudos enregistrés dans shop_amis pour le pseudo connecté.

    Mon problème est que je n'arrive pas à retirer les pseudos amis de la liste...

    Voici la requête que je fais :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM shop_client INNER JOIN shop_amis ON pseudo_connect=%s WHERE pseudo!=%s and pseudo!=pseudo_ami GROUP BY pseudo ASC
    avec %s = $_SESSION['MM_Username'].

    J'obtiens la liste de shop_client sans le pseudo connecté, mais les pseudos amis sont toujours présents...
    www.masterquizz.fr - Ne vous posez plus de questions

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT pseudo FROM shop_client 
    WHERE pseudo != %s
    AND pseudo NOT IN ( SELECT pseudo_ami FROM shop_amis WHERE pseudo_connect = %s )

    Au passage, dans shop_amis tu devrais avoir des id_client et pas de pseudo.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Homme Profil pro
    directeur hypermarché
    Inscrit en
    Avril 2009
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : directeur hypermarché

    Informations forums :
    Inscription : Avril 2009
    Messages : 227
    Points : 111
    Points
    111
    Par défaut
    C'est parfait !

    Merci Sabotage ...mais je n'ai pas compris la subtilité avec les id_client et les pseudo. Quelle différence cela fait-il ?
    www.masterquizz.fr - Ne vous posez plus de questions

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Travailler avec des id est un fondement dans une base de données relationnelle.

    Déjà il est beaucoup plus économique et rapide pour ton SGDB de travailler avec un id numérique qu'avec une chaine de caractère.
    Imagine par exemple ton client "SUPERZORGLUBDELAMORT". Partout actuellement tu mets "SUPERZORGLUBDELAMORT" alors que tu n'as besoin en fait que de la reference de son id.
    Ensuite ton id est une reference immuable pour representer le client.
    Imagine qu'il faille renommer "SUPERZORGLUBDELAMORT", il faudrait modifier toutes les tables ou tu l'as mis ; avec l'utilisation de l'id, tu dois simplement modifier l'unique occurence dans la table client.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Homme Profil pro
    directeur hypermarché
    Inscrit en
    Avril 2009
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : directeur hypermarché

    Informations forums :
    Inscription : Avril 2009
    Messages : 227
    Points : 111
    Points
    111
    Par défaut
    J'ai compris. C'est très clair !

    Encore merci
    www.masterquizz.fr - Ne vous posez plus de questions

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

Discussions similaires

  1. [AC-2010] Problèmes de critères pour une requête.
    Par Mathieu_31 dans le forum Access
    Réponses: 1
    Dernier message: 24/02/2013, 07h51
  2. Problème utilisation for pour une requête
    Par Zaark dans le forum Android
    Réponses: 2
    Dernier message: 17/01/2011, 09h31
  3. [SQL 2005] Problème pour une requête SELECT
    Par Rodie dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/06/2007, 17h12
  4. problème de syntaxe delphi pour une requête sql
    Par socooooool dans le forum Bases de données
    Réponses: 12
    Dernier message: 07/07/2006, 16h53
  5. Problème tableau pour une requête
    Par LE NEINDRE dans le forum Langage
    Réponses: 2
    Dernier message: 07/10/2005, 20h21

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