2016-03-15 2 views
-1

У меня есть следующая вложенная mysql synta, которая дает мне код ошибки 1064.MySQL вложенные запросы со вставками

Ниже приведен запрос.

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) таблицы. кол-во участников | | Список участников | | | groups table

Таблицы members_groups содержат первичные ключи таблицы таблиц и групп участников в качестве внешних ключей.

Ниже ошибка из консоли тузд

# 1064 - У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать вблизи «INNERJOIN групп г на q.group_id = g.group_id WHERE имя пользователя <>„корень“AND g.per» в строке 1

+0

Существует ключ в сообщении об ошибке – Strawberry

ответ

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) 
+0

не видел, что –

Смежные вопросы