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 :

Remplacer INTERSECT


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Par défaut Remplacer INTERSECT
    Bonjour,
    Les deux requêtes séparement marchent cependant lorsque je veux une intersection.. (en sachant qu'un nuplet est bien approprié à cette requête) ça ne marche pas.. le top se serait :
    SELECT A.ID
    FROM annonces AS A, data_champs AS D
    WHERE A.ID = D.Annonce
    AND D.Champ =1
    AND D.Data LIKE '%vide%'
    INTERSECT
    (SELECT A.ID
    FROM annonces AS A, data_champs AS D
    WHERE A.ID = D.Annonce
    AND D.Champ =2
    AND D.Data = 'Paris')

    sauf que sous mysql INTERSECT ne fonctionne pas.. et si.. je fais

    (SELECT A.ID
    FROM annonces AS A, data_champs AS D
    WHERE A.ID = D.Annonce
    AND (D.Champ =1 OR D.Champ =2)
    AND D.Data LIKE '%vide%'
    AND D.Data = 'Paris'

    ça ne marche toujours pas... j'ai essayé beaucoup de choses.. avec les EXISTS etc... mais rien ne donne comme il faut.
    Alors svp, est ce que vous avez une idée.
    Merci
    Cordialement,
    Michto

  2. #2
    Membre Expert 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
    Par défaut
    Bonjour,

    C'est tes conditions dans la clause WHERE qui sont inappropriées. Par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AND D.Data LIKE '%vide%'
    AND D.Data = 'Paris'
    est impossible.

    Ca serait plutôt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    WHERE A.ID = D.Annonce
    AND (D.Champ =1
    AND D.Data LIKE '%vide%')
    OR
    (D.Champ =2
    AND D.Data = 'Paris')

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Par défaut
    Merci,

    mais cela ne convient pas.. dans cette exemple je veux uniquement les annonces de Paris qui sont vides..
    là ça m'affiche les annonces qui sont soit vide soit de Paris..

    le
    <code>
    WHERE A.ID = D.Annonce
    AND (D.Champ =1
    AND D.Data LIKE '%vide%')
    AND
    (D.Champ =2
    AND D.Data = 'Paris')
    </code>
    ne marche pas aussi

  4. #4
    Membre Expert 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
    Par défaut
    Oui, exact

    Sous MySQL >= 4.1, tu peux faire ça avec une sous-requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT A.ID
    FROM annonces AS A, data_champs AS D
    WHERE A.ID = D.Annonce
    AND D.Champ =1
    AND D.Data LIKE '%vide%'
    AND A.ID IN
    (SELECT ID
    FROM annonces AS A, data_champs AS D
    WHERE A.ID = D.Annonce
    AND D.Champ =2
    AND D.Data = 'Paris')
    Sinon, il faudra utiliser une jointure (cf la FAQ)

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/12/2013, 16h40
  2. Remplacer "Intersection" dans une requête
    Par carribean dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/10/2008, 08h57
  3. comment remplacer une partie de texte dans un champs
    Par patlapi dans le forum Paradox
    Réponses: 4
    Dernier message: 20/11/2003, 14h38
  4. [SQL] Remplacer une table
    Par rstephane dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/05/2003, 17h10
  5. XPath: intersection de chemins
    Par aldo047 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 13/03/2003, 10h30

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