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

  1. #1
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mai 2006
    Messages : 249
    Points : 165
    Points
    165
    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.
    Deux personnes n'apprennent pas, un arrogant et un timide.

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

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    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
    Merci d'ajouter un sur les tags qui vous ont aidé

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 249
    Points : 165
    Points
    165
    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
    Deux personnes n'apprennent pas, un arrogant et un timide.

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

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    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 ??
    Merci d'ajouter un sur les tags qui vous ont aidé

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

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    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 : 60
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    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
    ?
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  7. #7
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mai 2006
    Messages : 249
    Points : 165
    Points
    165
    Par défaut
    Merci makowski;
    C'est exactement ce que j'ai fais juste avant que tu poste ton message.
    Merci tout le monde.
    Deux personnes n'apprennent pas, un arrogant et un timide.

+ 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, 14h00
  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, 19h35
  3. Requête avec condition
    Par lolo_bob2 dans le forum Access
    Réponses: 1
    Dernier message: 08/06/2006, 19h59
  4. [Requête]Requête avec condition
    Par Miles Raymond dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 23/05/2006, 08h30
  5. Calcul requête avec conditions multiples
    Par Phullbrick dans le forum Access
    Réponses: 7
    Dernier message: 18/04/2006, 13h45

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