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 :

Problème pour réaliser une soustraction entre 2 tables


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 12
    Points : 13
    Points
    13
    Par défaut Problème pour réaliser une soustraction entre 2 tables
    Comme c'est mon premier post tout d'abord salut a tous les membres du forum.

    C'est pas de chance, je m'inscrit et 10 minutes + tard je me met à galérer pour une requete


    Voila mon prob :
    J'ai 2 tables avec des vars communes
    URL (url, id_membre) et Partenaire(url,id_membre).

    Je voudrais réaliser une soustraction de type :
    SELECT url,idmembre FROM URL WHERE id_membre!=1
    - SELECT url,idmembre FROM Partenaire WHERE id_membre=1
    = CE QUE JE veux trouver.

    J'ai essayé diverse requete de ce type sans résultat :
    SELECT id_membre,url FROM URL
    WHERE URL.id_membre NOT IN (SELECT id_membre FROM Partenaire) AND URL.url NOT IN (SELECT url FROM Partenaire);


    J'ai mysql 4.0.25 sur mon serveur.

    Si quelqu'un as une astuce merci d'avance !

  2. #2
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut Re: Problème pour réaliser une soustraction entre 2 tables
    Les requêtes imbriquées sont reconnues à partir de MySQL 4.1 seulement.

    A la place, il faut utiliser une jointure LEFT OUTER JOIN et des tests WHERE ... IS NULL:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT URL.id_membre, URL.url
     
    FROM URL
     
    LEFT OUTER JOIN Partenaire P
    ON (URL.id_membre = P.id_membre OR URL.url=P.url)
     
    WHERE P.id_membre IS NULL
    AND P.url IS NULL ;
    Après, il faut voir exactement ce que tu cherches à faire (ta première requête est assez différente de ta deuxième)
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 12
    Points : 13
    Points
    13
    Par défaut

    Merci j'ai trouvé exactement ce qu'il ma fallait grace à ta requete.
    J'avais pas bien réussi a expliquer ce que je voulais faire donc j'ai adapté et c ok !

    Je suis

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

Discussions similaires

  1. [WD16] problème pour ajouter une ligne dans la table
    Par T1929D dans le forum WinDev
    Réponses: 3
    Dernier message: 02/08/2013, 22h39
  2. Problème pour réaliser une action lors du clique sur le bouton menu ou back
    Par FunckyWarrior dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 29/05/2013, 14h39
  3. problème pour separer une table avec une procedure
    Par mathieu38 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 09/04/2009, 09h25
  4. Problème pour réaliser une macro "de boucles" dans VBA
    Par philou7176 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/12/2008, 15h41
  5. problème pour créer une table
    Par zyriuse dans le forum Installation
    Réponses: 11
    Dernier message: 16/11/2007, 11h26

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