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 :

Select sur des éléments communs ?


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 309
    Points : 61
    Points
    61
    Par défaut Select sur des éléments communs ?
    Bonjour, voici mon problème. J'ai la table suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     AgendaId
    AgendaDate
    ObjectId
    Je voudrais lorsque je cherches plusieurs agendaid et plusieurs date que le select me retourne rien si il y a un objectId qui est différent des autres, mais en tenant compte aussi des records qui n'existent pas.

    Par exemple si j'ai dans ma table les records suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     1   2007-10-22   10
    2   2007-11-22   10
    Et que je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from ma_table where agendaid = 1 or agendaid = 2 or agendaid = 3 and agenda_date = '2007-10-22'
    il devra me retourner que dale puisque l'agenda qui a un id 3 n'existe pas.

    Évidemment je pourrais vérifier au retour du select, regarder records par records, mais je cherches une solution côté serveur.

    avec mysql 5

    Merci

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 399
    Points
    28 399
    Par défaut
    Comme ça par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT  t1.*
    FROM    matable  AS t1
    WHERE   EXISTS
            (   SELECT  1
                FROM    matable  AS t2
                WHERE   t2.agendadate = t1.agendadate
                    AND t2.agendaid IN (1,2,3)
                HAVING  COUNT(*) = 3
            )
    WHERE   t2.agendadate = '2007-10-22'
    ;

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 309
    Points : 61
    Points
    61
    Par défaut
    Merci Mais peux-tu m'expliquer la requêtes ? SELECT 1 je n'ai jamais vu cela

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 399
    Points
    28 399
    Par défaut
    Avec EXISTS, la liste des éléments retournés par la sous-requête n'est d'aucune utilité. Ce qui importe c'est la présence de ligne correspondant à la sélection.
    Donc SELECT 1, NULL ou 'toto', ça n'a aucune importance

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/04/2008, 11h20
  2. [XSD] comment faire des tests sur des éléments
    Par attila771 dans le forum Valider
    Réponses: 1
    Dernier message: 11/10/2007, 12h32
  3. travaillez sur des élément ayant le même id
    Par pierreonxbox dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/06/2007, 17h29
  4. Réponses: 7
    Dernier message: 24/10/2006, 11h11
  5. Select sur des nombre décimaux de format 0.*
    Par CanardJM dans le forum Langage SQL
    Réponses: 8
    Dernier message: 18/08/2005, 16h04

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