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

SQL Firebird Discussion :

Requête avec condition in


Sujet :

SQL Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Mai 2006
    Messages : 249
    Par défaut Requête avec condition in
    Bonjour tout le monde;
    Je veux ecrire une requête comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from commandes where code in (select commande from livraisons)
    mais je veux que la condition soit avec deux champs c-a-d
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from commandes where code, partie in (select commande, partie from livraisons)
    Je ne sais pas comment la rédiger.
    Merci pour tout le monde.

  2. #2
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    bonjour

    il me semble que ta requete est bien plus generale que FIREBIRD ! n'aurais tu pas mieux fait de la faire sur le forum "language SQL" ?


    j'imagine que tu as essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT * 
        FROM commandes 
        WHERE 
           code IN (SELECT commande FROM livraisons) 
          AND partie IN (SELECT partie FROM livraisons)
    et quand est-il en utilisant le UNION ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT * 
        FROM commandes 
        WHERE code IN (SELECT commande FROM livraisons) 
    UNION 
        SELECT * 
        FROM commandes 
        WHERE partie IN (SELECT partie FROM livraisons)
    Neanmoins, je crains que cela ne te donne pas ce que tu souhaites a cause d'eventuelle WHERE a l'interieur des sous-requetes

    a+

    olivier

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Mai 2006
    Messages : 249
    Par défaut
    Merci dehorter olivier;
    Effectivement, ma requette est une forme générale mais je crains recevoir dans les réponses des spécificités inexistantes en firebird ou perdre des spécificités spétiale de Firebird; c'est pour cela que je préfère la poser ici surtout qu'il existe la sous-rubrique SQL sous la rubrique firbird.
    A propos de ta réponse, je pense qu'elle ne précise pas que le doublé (commande,partie) représente une clé dans la table commandes

  4. #4
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    j'ai peut etre une idee en utilisant la concatenation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      SELECT *
        FROM Commandes
        WHERE Code || Partie IN (SELECT Commande || Partie
                                   FROM Livraisons)
    mais que va devenir l'indexation ??

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 955
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 955
    Par défaut
    Sur certains SGBD la requête suivante fonctionne mais je ne sais pas si c'est le cas sur firebird :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
      FROM Commandes
     WHERE (Code, Partie) IN (SELECT Commande, Partie FROM Livraisons)
    Sinon utilise exists
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT *
      FROM Commandes c
     WHERE exists (SELECT 1 
                     FROM Livraisons l
                    where l.commande = c.code
                      and l.partie   = c.partie)

  6. #6
    Membre Expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Par défaut
    Et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT commandes.code,commandes.partie ...  
    FROM commandes 
    JOIN livraisons ON  commandes.code=livraisons.commande AND   commandes.partie=livraisons.partie
    ?

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

Discussions similaires

  1. [MySQL] Requête avec condition sur un champ
    Par nonhosonno dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/02/2007, 15h00
  2. [MySQL] pb de requête avec conditions, débutant
    Par carelha dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 30/11/2006, 20h35
  3. Requête avec condition
    Par lolo_bob2 dans le forum Access
    Réponses: 1
    Dernier message: 08/06/2006, 20h59
  4. [Requête]Requête avec condition
    Par Miles Raymond dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 23/05/2006, 09h30
  5. Calcul requête avec conditions multiples
    Par Phullbrick dans le forum Access
    Réponses: 7
    Dernier message: 18/04/2006, 14h45

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