2017-09-26 110 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