嵌套查询:INSERT查询中的SELECT

时间:2017-09-26 04:53:04

标签: python tornado psql

我有两张桌子说医生和病人。我需要从医生表中获取医生ID(唯一),然后在INSERT操作期间将其传递给患者桌子的一列。我该如何编写查询。

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

  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)

我正在尝试使用psql后端

在python tornado框架中执行此操作

1 个答案:

答案 0 :(得分:0)

  1. SELECT应位于VALUES部分
  2. 查询将如此
  3. 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)