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 :

Simplifier : plusieurs select pour un insert


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut Simplifier : plusieurs select pour un insert
    Bonjour,

    à l'heure actuelle, je fais 3 requêtes "select" pour faire un "insert" qui utilise des données issues des 3 requêtes précédentes ; il est probablement possible de simplifier ça, mais connaissant mal SQL, je ne sais pas le faire ; donc pourrait-on me le dire ? Voici les 4 requêtes que je fais à l'heure actuelle (ce sont des requêtes préparées) :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT id_patient FROM `patient` where prenom=:id_prenom AND nom=:id_nom AND num_secu=:num_secu
    SELECT id_praticien FROM `praticien` WHERE cat_praticien="médecin"
    SELECT id_consultation_type FROM `consultation_type` WHERE titre_consultation_type="Médecin"
    INSERT into `CONSULTATION` (id_praticien, id_patient,id_consultation_type, date_consultation) VALUES (:id_praticien,:id_patient,:id_consultation_type,:date_consultation)

  2. #2
    Membre chevronné
    Avatar de taibag
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

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

    Informations forums :
    Inscription : Septembre 2013
    Messages : 214
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Si vous avez des relations entre vos tables, vous pouvez faire des jointures pour avoir un seul select.

    Merci.

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Je pensais effectivement aux jointures, sauf qu'en fait, il n'y a rien de commun entre les 3 tables des select :

    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
    16
    17
    18
    19
    patient
    id_patient : int (8)auto-increment
    nom : varchar (20)
    prenom : varchar (20)
    date_naissance : date
    num_secu : bigint(15)
    
    
    praticien
    	`id_praticien`: mediumint(8) AUTO_INCREMENT,
      
    	`nom_praticien`: varchar(20) 
    	`prenom_praticien`: varchar(20)
    	`cat_praticien`: varchar(20)
    
    consultation_type
      `id_consultation_type` : int (8)auto-increment
      `titre_consultation_type` : varchar(20)

  4. #4
    Membre chevronné
    Avatar de taibag
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

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

    Informations forums :
    Inscription : Septembre 2013
    Messages : 214
    Billets dans le blog
    1
    Par défaut
    N'avez-vous pas un problème de conception !!??

  5. #5
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    En fait, comme je débute en SQL, elle n'est pas de moi et j'en dis plus ici : http://www.developpez.net/forums/d14...ires-medecins/. Si tu t'y connais, peux-tu jeter un œil ?

  6. #6
    Membre actif
    Homme Profil pro
    Reverse Engineering
    Inscrit en
    Juin 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Reverse Engineering

    Informations forums :
    Inscription : Juin 2013
    Messages : 31
    Par défaut
    Voila la façon de faire sur une seule ligne.
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT id_patient, id_practicien, id_consultation_type
    FROM patient P,practicien M, consultation_type C
    WHERE prenom=:P.id_prenom AND nom=:P.id_nom AND num_secu=:P.num_secu
    AND M.cat_practicien="médecin"
    AND C.titre_consultation_type="Médecin"

    Par contre des doutes sur le résultat souhaité?


    --------------------------------------------
    Si un commentaire t'as aidé pense à mettre un

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

Discussions similaires

  1. Plusieurs select dans un INSERT
    Par micom59 dans le forum Langage SQL
    Réponses: 15
    Dernier message: 28/07/2010, 14h47
  2. Réponses: 2
    Dernier message: 02/07/2008, 02h26
  3. Récuperation du max avec 2 select pour un insert
    Par Kiroukool dans le forum SQL
    Réponses: 5
    Dernier message: 02/08/2007, 09h31
  4. Réponses: 3
    Dernier message: 06/04/2007, 10h09
  5. [ODBC] plusieurs redirections pour l'insertion
    Par maraly dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 29/03/2007, 15h51

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