Mysql
 sql >> Base de données >  >> RDS >> Mysql

Erreur de syntaxe de requête de jointure interne MySQL

Votre INNER JOIN doit venir avant le WHERE . Je ne pense pas non plus que vous ayez besoin des parenthèses autour votre BETWEEN clause , mais je doute que cela provoque une erreur dans les deux cas :

SELECT Workouts.date as date, Workout_locations.location_id as loc_id 
FROM Workouts 
INNER JOIN Workout_locations ON Workouts.id=Workout_locations.workout_id
WHERE Workouts.pacegroup_id = '9' 
AND Workouts.date BETWEEN '2013-08-19' AND '2013-08-25';

De plus, bien qu'ils techniquement vous laisser vous en tirer, vous devriez éviter d'utiliser "date" comme nom de colonne sélectionné (c'est un mot réservé ).

Vous pouvez également rationaliser un peu pour rendre les choses un peu plus faciles à lire :

SELECT Workouts.date AS wo_date, Workout_locations.location_id AS loc_id
FROM Workouts w
INNER JOIN Workout_locations l ON w.id = l.workout_id
WHERE w.pacegroup_id = '9'
AND w.date BETWEEN '2013-08-19' AND '2013-08-25';