具有连接的MySQL嵌套查询

时间:2016-03-15 17:15:41

标签: mysql sql

我有以下嵌套的mysql synta,它给了我一个1064错误代码。

以下是查询。

SELECT m.member_id , m.username , m.email , g.permission 
FROM members m 
INNER JOIN members_groups q ON m.member_id = q.member_id 
INNERJOIN groups g on q.group_id = g.group_id 
WHERE username <> 'root' AND g.permission < 
(SELECT g.permission FROM members m 
INNER JOINmembers_groups q ON m.member_id = q.member_id 
INNER JOIN groups g on q.group_id = g.group_id WHERE m.member_id = 13) 

代码涉及三(3)个表。  会员表               |               |                members_groups表               |               |   分组表

members_groups表包含members表和groups表的主键作为外键。

以下是mysql控制台的错误

  

#1064 - 您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在q.group_id = g.group_id WHERE username&lt;&gt;附近的&#39; INNERJOIN组附近使用正确的语法。 &#39;根&#39;和g.per&#39;在第1行

2 个答案:

答案 0 :(得分:1)

在JOIN周围需要适当的空格:

SELECT m.member_id , m.username , m.email , g.permission 
FROM members m INNER JOIN members_groups q ON m.member_id = q.member_id 
    INNER JOIN groups g on q.group_id = g.group_id 
WHERE username <> 'root' AND g.permission < 
    (SELECT g.permission 
    FROM members m INNER JOIN members_groups q ON m.member_id = q.member_id 
    INNER JOIN groups g on q.group_id = g.group_id WHERE m.member_id = 13) 

答案 1 :(得分:1)

这个错误有很多可能原因很多,但在你的情况下是它的错字 参考 - http://www.inmotionhosting.com/support/website/database-troubleshooting/error-1064
检查以下图片

enter image description here