簡體   English   中英

MySQL內部聯接查詢語法錯誤

[英]MySQL Inner Join Query Syntax error

我是MySQL的新手,無法弄清楚這里出了什么問題。 我有兩張桌子。 左表稱為“鍛煉”。 相關列是datedate類型)和id (類型int)。

右邊的表稱為Workout_locations (相關字段: workout_id type int, and location_id type int )。

Workout_locations.workout_id字段是Workouts.idWorkout_locations.workout_id

我要做的只是得到兩列的表格: date (來自Workouts)和location_id (來自Workout_locations )。 我只需要基於幾個字段從“ Workouts表中提取記錄(sql語句應明確指出)。

這是我的SQL語法:

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

但是我得到這個錯誤:

您的SQL語法有誤; 在第1行的“ INNER JOIN Workout_locations ON Workouts.id = Workout_locations.workout_id”附近,查看與您的MySQL服務器版本相對應的手冊以使用正確的語法。

我希望對於有經驗的人來說,這是一個非常容易發現的錯誤。 有人看到嗎? 謝謝!

您的INNER JOIN應該在WHERE之前。 我也不認為您需要在BETWEEN子句周圍使用BETWEEN ,但是我懷疑這兩種方式都會導致錯誤:

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';

另外,盡管從技術上講 ,它們使您擺脫了它,但您應避免使用“ date”作為選定的列名(這是一個保留字 )。

您還可以進行一些簡化以使內容更易於閱讀:

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';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM