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

Administration MySQL Discussion :

[MySQL 4.0.17] utilisation de LEFT JOIN 2 fois


Sujet :

Administration MySQL

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 141
    Points : 79
    Points
    79
    Par défaut [MySQL 4.0.17] utilisation de LEFT JOIN 2 fois
    bonjour,

    avec cette version de MySQL, je ne peux faire de requete imbriqué. je me suis pris la tete un moment sur une requete qui n'est pas spécialement compliqué mais mes connaissances SQL me manque.

    TABLE:

    abonne(id,etat,nom, prenom, dateinscription....)
    parrainage(idparrain, idfilleul) (c'est une récursive ou un utilisateur parraine un autre utilisateur)
    message(id_message)
    envoi(id_envoi)//on sauvegarde ici les messages envoyés aux utilisateurs.

    REQUETE VOULU
    j'aimerai savoir quel sont les utilisateurs qui:
    1.ne sont pas filleul
    2.n'ont pa recu de message dont l'id_message = 1
    3.ont l'état = 2
    4.dont la date d'inscription date de plus de 7 jours

    ma difficulté est le 1 et 2 en meme temps.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    SELECT *
    FROM abonne 
    LEFT JOIN parrainage 
    ON abonne.id_abonne = parrainage.idfilleul_parrainage
    RIGHT JOIN envoi
    ON abonne.id_abonne = envoi.idabonne_envoi
    WHERE parrainage.idparrain_parrainage IS NULL 
    and envoi.idabonne_envoi IS NULL
    and etat_abonne = 2 
    and dateinscription_abonne <= date_add(now(), interval - 7 DAY)
    merci pour votre aide

  2. #2
    Membre du Club
    Java/.NET
    Inscrit en
    Février 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Java/.NET

    Informations forums :
    Inscription : Février 2005
    Messages : 50
    Points : 48
    Points
    48
    Par défaut
    Bonjour,
    tu dois pouvoir faire un INNER JOIN (bon je sais ce n'est pas très recommander) mais ça fait ce que tu veux faire normalement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT *
    FROM abonne 
    INNER JOIN parrainage,envoi
    ON abonne.id_abonne = parrainage.idfilleul_parrainage AND abonne.id_abonne = envoi.idabonne_envoi
    WHERE parrainage.idparrain_parrainage IS NULL 
    and envoi.idabonne_envoi IS NULL
    and abonne.etat_abonne = 2 
    and abonne.dateinscription_abonne <= date_add(now(), interval - 7 DAY)
    (désolé si la syntaxe est pas bonne mais je répond vite fait avant de repartir au travail.)

  3. #3
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 141
    Points : 79
    Points
    79
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT *
    FROM abonne 
    INNER JOIN parrainage,envoi
    ON abonne.id_abonne = parrainage.idfilleul_parrainage AND abonne.id_abonne = envoi.idabonne_envoi
    WHERE parrainage.idparrain_parrainage IS NULL 
    and envoi.idabonne_envoi IS NULL
    and abonne.etat_abonne = 2 
    and abonne.dateinscription_abonne <= date_add(now(), interval - 7 DAY)
    c'est pas passé.

    voila une requete que je veux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT *
    FROM abonne 
    LEFT JOIN parrainage 
    ON abonne.id_abonne = parrainage.idfilleul_parrainage 
    WHERE parrainage.idparrain_parrainage IS NULL 
    and abonne.etat_abonne = 2 
    and abonne.dateinscription_abonne <= date_add(now(), interval - 7 DAY
    mais avec en plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT  * 
    FROM abonne
    LEFT JOIN envoi 
    ON abonne.id_abonne = envoi.idabonne_envoi
    WHERE envoi.idabonne_envoi IS  NULL  
    AND abonne.etat_abonne =2 
    AND abonne.dateparrainage_abonne <= date_add(now(), INTERVAL -7 DAY) 
    il faudrai faire une fusion de ces 2 requetes

  4. #4
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Salut,

    Il suffit de mettre les LEFT JOIN à la suite :
    SELECT ... LEFT JOIN ... ON ... LEFT JOIN ... ON ... WHERE ...
    Pensez au bouton

  5. #5
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 141
    Points : 79
    Points
    79
    Par défaut
    merci, pourquoi j'ai pas essayé ??!!

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

Discussions similaires

  1. [MySQL-5.1] Utilisation de LEFT JOIN
    Par Jon Shannow dans le forum Requêtes
    Réponses: 1
    Dernier message: 14/11/2014, 10h47
  2. Utilisation de LEFT JOIN
    Par Bisûnûrs dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/02/2009, 15h31
  3. Utilisation du LEFT JOIN
    Par Mobistar dans le forum Langage SQL
    Réponses: 1
    Dernier message: 01/09/2008, 22h56
  4. [Mysql 3.23] Probleme avec un LEFT JOIN
    Par griese dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/01/2007, 10h16
  5. Non coincident MySQL (Left Join)
    Par Remiguel dans le forum Requêtes
    Réponses: 6
    Dernier message: 03/11/2003, 21h25

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