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

SQLite Discussion :

Comment récupérer des données d'une table vérifiant une condition dans une autre table ?


Sujet :

SQLite

  1. #1
    Membre régulier
    Homme Profil pro
    élève ingenieur
    Inscrit en
    Août 2015
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : élève ingenieur
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2015
    Messages : 69
    Points : 72
    Points
    72
    Par défaut Comment récupérer des données d'une table vérifiant une condition dans une autre table ?
    Salut à tous .

    je suis débutant en C++.Je suis entrain de developper une application en C++ avec Qt utulisant SQLite.

    je voudrai savoir svp comment recuperer des données d'une table verifiant une condition dans une autre table.

    plus précisement.j'ai une table Patient contenant les propriétes de patient:cin(clé primaire),nom,prenom,date de naissance,et une table medecin contenant les meme propriétes de patient plus son specialité, et une table hospitalisation contenant cin de medecin ,cin de patient, idordonnance(pour l'ordoonance effectué aprés l'hospitalisation).

    je cherche à afficher la liste des patients pour le medecin dont le cin est donné.Donc il faut une requete qui permet de recuperer les cordonnés de patients dont ses cin appartiennent à la table hospitalisation pour un cin de medecin.
    le but que chaque medecin peut consulter la liste de ses patients et non la liste totale des patients de l'hopital.


    je voudrai savoir svp la requete qui permet de récuperer toute les patients dont ses cin (attribut) se trouve dans table hospitalisation.

    merci d'avance .

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    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 080
    Points : 30 801
    Points
    30 801
    Par défaut
    Tu devrais y arriver assez facilement avec WHERE EXISTS (...)
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre régulier
    Homme Profil pro
    Architecte technique
    Inscrit en
    Octobre 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2008
    Messages : 83
    Points : 96
    Points
    96
    Par défaut
    salut,
    ou avec un WHERE (NOT) IN (SELECT l'attribut FROM laTable)

    Ex des tutos SQL de ce site :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT *
    FROM   Matable
    WHERE  uneColonne IN
    (
    SELECT CLI_NOM
    FROM MaTable
    )

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    il est très difficile de lire la structure des tables quand elles sont diffuses dans le texte. Une des bonnes habitudes sur ce forum est de fournir la structure (même approximative ou allégée des tables sous forme de Script SQL

    par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    CREATE TABLE PATIENT
    (CIN,
     NOM,
     PRENOM);
    CREATE TABLE MEDECIN
    (CIN,
     NOM,
     PRENOM,
     SPECIALISATION);
    CREATE TABLE HOSPITALISATION
    (CIN,
     CINMEDECIN,
     CINPATIENT,
     CINORDONNANCE
    );
    Donc il faut une requête qui permet de récupérer les cordonnées de patients dont ses cin appartiennent à la table hospitalisation pour un cin de medecin.
    à priori on n'a donc pas besoin de la table médecin une simple jointure et une requête paramétrée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT patient.* from hospitalisation join patient on hospitalisation.cinpatient=patient.cin -- JOINTURE Exclusive 
    where cinmedecin=:codemedecin -- parametre sélection du medecin
    une simple jointure et une requête paramétrée (je pense que qt le permette, je connais Delphi et C++ mais peu QT) devrait suffire non ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/07/2015, 21h02
  2. Réponses: 17
    Dernier message: 16/03/2009, 09h21
  3. Réponses: 0
    Dernier message: 10/08/2008, 19h05
  4. Comment récupérer des données, les comparer à une autre table.
    Par soria_t dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 06/08/2008, 17h58
  5. Réponses: 3
    Dernier message: 28/01/2007, 19h25

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