我想從我的數據庫中獲取記錄,其中studentID和lessonDate等於特定結果。 StudentID似乎工作正常,但lessonDate沒有。由於日期格式,我已將所有日期轉換爲字符串以放入數據庫。我已經建立了數據庫文件,以便該字段是文本字段。我想要獲得學生在特定日期進行的所有練習的課程名稱和評分。數據庫圖:https://docs.google.com/drawings/d/16IqlDN2iqzVCeaUUGgeCe1R98yhUI7vQswH0tK39cAk/edit?usp=sharingSQL查詢不會選擇我需要的數據'where'條件
我確定StudentID是正確的,因爲我在這個函數的其他部分使用它。我確定日期是正確的,因爲第4行中使用的'date'變量導致寫入文件的輸出正確,並且我最初將SQL查詢中的日期作爲此變量,但它不起作用。我試過在這個學生是外鍵的地方打印課程,日期是'8-10-2016'。我真的不知道爲什麼會發生這種情況。任何人的任何建議或假設將不勝感激。
template = ("{0:50}{1:50} \n")
print(lessonDateSet)
for date in list(lessonDateSet):
target.write("Lesson date: {} \n".format(date))
target.write("\n")
target.write(template.format("Exercise name:","rating:"))
self.cur.execute("""SELECT b.roadExerciseName, a.rating
FROM lessonExercises a LEFT JOIN roadExerciseInfo b ON a.roadExerciseID=b.roadExerciseID
LEFT JOIN lessons c ON c.lessonID=a.lessonID WHERE c.StudentID = {0} AND c.lessonDate = {1}""".format(studentInfo[0][0],"8-10-2016"))
fetch = self.cur.fetchall()
print(fetch, "fetch")
'fetch'是一個空列表。在這之後。 我有雙重和tripple檢查我的數據。我的數據絕對正確。
兩條建議:輸出Python正在運行的實際查詢,然後查看是否可以直接在SQLite上運行該查詢。 –