studentIDとlessonDateが特定の結果と等しいデータベースからレコードを取得しようとしています。 StudentIDは正常に動作しているようですが、lessonDateはうまく動作しません。日付形式のため、私はすべての日付を文字列に変換してデータベースに入れました。フィールドがテキストフィールドになるようにデータベースファイルを設定しました。私はレッスンの名前とレーティングを得ようとしています。レッスンの名前とレーティングは、特定の日に行ったすべてのエクササイズで得られたものです。データベースダイアグラム:https://docs.google.com/drawings/d/16IqlDN2iqzVCeaUUGgeCe1R98yhUI7vQswH0tK39cAk/edit?usp=sharingSQLクエリは、 'where'条件で必要なデータを選択しません。
私はこの関数の他の部分でも使用しているように、StudentIDが正しいことを確信しています。私は日付が正しいことを確信しています。第4行目で使用されている「日付」変数が正しい出力をファイルに書き込むため、元々この変数として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'は空のリストです。この後。 私はダブルとトリプルが自分のデータをチェックしました。私のデータは間違いなく正しいです。
2つの提案:Pythonが実行している実際のクエリを出力し、そのクエリを直接SQLite上で実行できるかどうかを確認してください。 –