2017-09-26 2 views
0

J'ai deux tables, disons les médecins et les patients. J'ai besoin d'aller chercher l'identifiant du médecin (unique) dans la table des médecins, puis de le passer à une colonne de la table du patient pendant l'opération INSÉRER. Comment puis-je écrire la requête pour cela.Requête imbriquée: SELECT dans INSERT Requête

J'ai essayé la manière ci-dessous, mais il donne l'erreur de programmation:

usr = self.current_user 
self.db.execute("INSERT INTO patients ("SELECT id FROM doctors WHERE doctors.id = '%s' " % usr)(mrd, name, age, gender, address, phone_number, blood_group,\ 
     registration_date, did) values ('%s', '%s', '%s', '%s','%s','%s','%s','%s', '%s')" % (mrd,name,age,gender,\ 
     address,phoneNumber, bloodGroup,dateOfReg,usr),callback=self.add_response) 

Je suis en train d'exécuter ce dans le cadre de python tornade avec backend psql

Répondre

0
  1. SELECT devrait être VALUES section
  2. La requête sera comme

doctor_id = self.db.execute("SELECT id FROM doctors WHERE doctors.id = '%s' " % usr).fetchone() self.db.execute("INSERT INTO patients(mrd, name, age, gender, address, phone_number, blood_group,registration_date, did, doctor_id) values (%s, %s, %s, %s,%s,%s,%s,%s,%s, %s)" % (mrd,name,age,gender,address,phoneNumber, bloodGroup,dateOfReg,usr, doctor_id),callback=self.add_response)

+0

Pourriez-vous montrer exactement comment écrire SELECT dans VALUES. Parce que j'ai essayé le chemin ci-dessous et je ne reçois toujours pas de réponse. – Athira

+0

@Athira C'est plus simple, ou vous pouvez coller la requête 'SELECT' à la place' doctor_id', je veux dire à la fin de la variable de passage – AndMar

+0

self.db.execute ("INSERT INTO patients (mrd, nom, âge, sexe, adresse , phone_number, blood_group, \ registration_date, doctor_id) valeurs ('% s', '% s', '% s', '% s', '% s', '% s', '% s', '% s ','% s ​​') "% (mrd, nom, âge, sexe, \ adresse, numero de téléphone, bloodGroup, dateOfReg, doctor_id = (" CHOISIR ID de médecins WHERE doctors.id ='% s '"% usr)), callback = self.add_response) J'ai ajouté ce qui suit, mais la syntaxe est incorrecte. – Athira