-3

当我尝试使用 mysql 启动查询以加入 3 个表时,出现以下错误:

错误代码:1064。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以mahara.group_member在第 6 行的“group INNER JOIN as group_members ON group_id = member”附近使用正确的语法

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;

对于我的生活,我看不到我做错了什么。任何帮助表示赞赏。

干杯

4

1 回答 1

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;

另外,请注意您应该避免使用保留字作为表、列和别名的名称。

于 2013-04-22T10:18:15.473 回答