2013-04-22 6 views
-3

Я получаю следующее сообщение об ошибке при попытке выстрелить запрос присоединиться к 3 таблицы с использованием MySQL:Код ошибки: 1064. У вас есть ошибка в синтаксисе SQL; 3 таблицы MySQL присоединиться

Код ошибки: 1064. У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом с «группа INNER JOIN mahara.group_member в group_members ПО 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; 

За жизнь Я не вижу, что я делаю неправильно. Любая помощь оценивается.

Cheers

+0

Вы могли бы включить и разместить свои 3 стола? ваш псевдоним «группа» является резервным словом ... вам нужно использовать обратные ссылки при использовании зарезервированных слов следующим образом: \ 'group \' –

+0

Также не используйте зарезервированные слова. Используйте что-нибудь еще. – Zane

+3

@ Zane Он мог использовать 'ничего ', но не' else'. Это тоже зарезервировано;) –

ответ

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,'). Это также неверно. –

+1

@a_horse_with_no_name К сожалению, я пропустил это. Спасибо, что указали это – Taryn

+0

Это также в исходном запросе! –

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