Ich habe diese Anfrage:SQL-Abfrage gibt manchmal falsche Ergebnisse
query = "SELECT DISTINCT set_number " +
"FROM next_workout_exercises " +
"WHERE next_id = " + workoutid + " AND exercise_number = " + exercise_number;
und es gibt einige Ergebnisse.
Danach habe ich eine weitere Abfrage wie folgt:
query = "SELECT * FROM (SELECT * FROM next_workout_exercises INNER JOIN exercises WHERE next_workout_exercises.exercise_id = exercises.id)" +
" WHERE next_id = " + workoutid + " AND exercise_number = " + exercise_number + " AND set_number = " + set_number;
Und diese gibt Null zurück Ergebnisse MANCHMAL. Die Setnummer ist von der ersten Abfrage an gleich und keine Daten wurden geändert.
Kann jemand kommentieren, warum das passieren könnte?
Die Tabellen in Frage:
CREATE TABLE exercises
(
id INTEGER PRIMARY KEY,
exercise_name TEXT,
explanation TEXT,
type INTEGER,
target_body INTEGER,
exercise_video TEXT,
exercise_pic1 TEXT,
exercise_pic2 TEXT,
picturetype INTEGER,
backedup INTEGER
);
CREATE TABLE next_workout_exercises
(
id INTEGER PRIMARY KEY,
next_id INTEGER,
exercise_id INTEGER,
weightkg REAL,
weightlb REAL,
reps INTEGER,
reps2 INTEGER,
set_number INTEGER,
exercise_number INTEGER,
incrementkg REAL,
incrementlb REAL,
resttime1 INTEGER,
resttime2 INTEGER,
resttime3 INTEGER,
failures INTEGER,
failuresallowed INTEGER,
percentage REAL,
reptype INTEGER,
exercisetype INTEGER,
backedup INTEGER,
FOREIGN KEY(next_id) REFERENCES nextWorkout(id),
FOREIGN KEY(exercise_id) REFERENCES exercises(id)
);
Können Sie Ihre Frage bearbeiten, um die Tabellenschemas einzuschließen und einen minimalen Satz von Daten in den Tabellen bereitzustellen, der das falsche Verhalten zeigt, das Sie haben? – CDahn
@CDahn schlug mich dazu :) – Jim
Sorry. Ich habe die Tabellen hinzugefügt. – Mizan