2017-09-26 151 views
0

我有两个表格说医生和患者。我需要从医生桌上取出医生id(唯一),然后在INSERT操作过程中将其传递到患者桌子的一列。我该如何编写查询。INSERT查询中的嵌套查询:SELECT

我尝试以下方法,但它提供了编程错误:

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) 

我想在python龙卷风框架用psql后端执行此

回答

0
  1. SELECT应该在VALUES部分
  2. 查询将如此

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

您能否说明如何在VALUES中编写SELECT?因为我尝试了下面的方法,但我仍然没有得到答案。 – Athira

+0

@Athira它更简单的方法,或者你可以粘贴'SELECT'查询,而不是'doctor_id',我的意思是在所有传递变量的末尾 – AndMar

+0

self.db.execute(“INSERT INTO patients(mrd,name,age,gender,address ('%s','%s','%s','%s','%s','%s','%s','%s',电话号码,blood_group,\ registration_date,doctor_id) (%s','%s')“%(mrd,name,age,gender,\ address,phoneNumber,bloodGroup,dateOfReg,doctor_id =(”SELECT id FROM doctors WHERE doctors.id ='%s'“%usr) ),callback = self.add_response) 我添加了以下内容,但它显示无效语法 – Athira