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

Langage SQL Discussion :

Requête qui exclut des lignes


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2005
    Messages : 144
    Points : 70
    Points
    70
    Par défaut Requête qui exclut des lignes
    Salut tout le monde, désolé si le titre ne parle pas beaucoup j'ai pas trouvé d'autres mots...
    Bref, mon problème consiste en ça :
    Je fais un site de rencontre en ligne et je planche en ce moment sur un petit moteur de recherche par critères à définir. J'arrive bien à créer la requête voulue mais j'ai deux problèmes :
    - je voudrais exclure de cette requête l'identifiant de la personne qui fait la recherche si elle est connectée(pour ne pas qu'une personne se retrouve dans les résultats de sa recherche.
    - j'ai également une table bannissement qui contient les champs CLIENT_id_bannisseur et CLIENT_id_banni permettant à un client de virer d'autres personnes de ses recherches.

    Je voudrais donc faire disparaitre le client connecté et les clients qu'il a banni de la requête de recherche

    Avis aux spécialistes, moi je continue à chercher de mon coté...

  2. #2
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 366
    Points : 324
    Points
    324
    Par défaut
    Un truc du genre :

    SELECT ID
    FROM MaTable
    WHERE ID NE Client_ID AND ID NOT IN (SELECT ID FROM Client_Banisseur, Client_Banni WHERE Client_Banni.Client_ID = Client_Banniseur.Client_ID)

    Ca marcherait pas ?

    OOps non j'ai mal lu... C'est même plus simple que ça puisqu'il n'y a pas trois tables mais seulement deux :

    SELECT ID
    FROM Matable
    WHERE ID NE Client_ID AND ID NOT IN (SELECT Client_ID_Banni FROM MaTable, Banissement WHERE MaTable.ID = Banissement.Client_ID_Bannisseur)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2005
    Messages : 144
    Points : 70
    Points
    70
    Par défaut
    C'est exactement ce que j'ai trouvé en cherchant bien... Je vous mets la requête complète et finale :

    SELECT * FROM client
    WHERE id_client!='$id_client'
    AND id_client NOT IN (SELECT CLIENT_id_banni FROM bannissement WHERE CLIENT_id_bannisseur='$id_client')
    AND id_client NOT IN (SELECT CLIENT_id_bannisseur FROM bannissement WHERE CLIENT_id_banni='$id_client')

    sachant que $id_client est l'identifiant de la personne connecté qui passe par session. Merci alqualonde...


Discussions similaires

  1. [2008] Requête qui duplique des lignes en fonction d'une valeur dans un champ
    Par Fredo67 dans le forum Développement
    Réponses: 6
    Dernier message: 27/01/2015, 13h03
  2. requête qui élimine des lignes dont un champs se répète
    Par yacinowvich dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/04/2012, 03h39
  3. Requête qui exclue des enregistrements suivants des valeurs
    Par paflolo dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/02/2006, 18h38
  4. une requête qui selectionne la ligne max
    Par kuhnden dans le forum Access
    Réponses: 3
    Dernier message: 01/11/2005, 19h39
  5. requette qui renvoi des ligne double
    Par fehmitn dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/09/2004, 23h36

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