2013-04-22 91 views
-3

我收到以下錯誤,當我試圖把火關查詢用mysql加入3個表:錯誤代碼:1064.您的SQL語法錯誤; 3臺MySQL的加入

錯誤代碼:1064您的SQL語法錯誤;檢查對應於您的MySQL服務器版本的使用近「組INNER JOIN mahara.group_member作爲group_members ON GROUP_ID =構件」在列正確的語法手動6

MySQL是:

SELECT `mahara.group.id` as group_id, 
     `mahara.group.name` as group_name, 
     `mahara.group_member.member` as member_id, 
     `mahara.group_member.group` as member_groupid, 
     `mahara.usr.id` as user_id 
FROM `mahara.group` as group 
    INNER JOIN `mahara.group_member` as group_members ON group_id = member_id, 
    INNER JOIN `mahara.usr` as users ON member_id = user_id 
LIMIT 0, 200; 

對於生活我看不到我做錯了什麼。任何幫助讚賞。

乾杯

+0

你可以包括併發布你的3個表嗎?你的別名「group」是一個保留字......你需要在使用保留字時使用反引號,如:\\ group \\ – 2013-04-22 09:59:17

+0

也不要使用保留字。使用其他的東西。 – Zane 2013-04-23 16:52:02

+3

@贊他可以使用「任何」而不是「其他」。這也是保留;) – 2013-04-23 19:25:07

回答

6

您的查詢有幾個問題。

首先,您嘗試使用保留字group創建別名。您必須使用反引號來避開保留字。另外,您應該在表和列名稱周圍有單獨的反引號集,它們不應該包含在一對中。

二,您在表格mahara.group_member後加逗號後的逗號後應加上member_id,

查詢應該是:

SELECT `group`.`id` as group_id, 
     `group`.`name` as group_name, 
     group_members.`member` as member_id, 
     group_members.`group` as member_groupid, 
     users.`usr.id` as user_id 
FROM `mahara`.`group` as `group` 
INNER JOIN `mahara`.group_member` as group_members 
    ON group_id = member_id 
INNER JOIN `mahara`.`usr` as users 
    ON member_id = user_id 
LIMIT 0, 200; 

作爲一個方面,注意你應該避免使用reserved words作爲表,列和別名的名字。

+2

在第一個連接條件('= member_id,')之後還有一個不正確的逗號','。這也是無效的。 – 2013-04-22 15:55:48

+1

@a_horse_with_no_name糟糕,我錯過了那一個。感謝您指出這一點 – Taryn 2013-04-22 15:56:28

+0

這也是在原來的查詢! – 2013-04-22 16:03:54