MySQLSyntaxErrorException: не уникальная таблица / псевдоним: 'usuarios_grupos' - PullRequest
0 голосов
/ 29 ноября 2011

Я не могу найти ошибку в моем запросе MySQL. В нем говорится, что у меня нет уникального псевдонима таблицы для таблицы usuarios_grupos

Однако моя таблица usuarios_grupos появляется только один раз!

Мой запрос следующий:

SELECT DISTINCT usuarios.id_usuario
FROM usuarios
WHERE usuarios.id_usuario
NOT IN 
(SELECT DISTINCT id_usuario FROM usuarios_grupos, grupos
WHERE usuarios_grupos.id_grupo = grupos.id_grupo)

Есть идеи, почему это происходит?

Ответы [ 2 ]

1 голос
/ 29 ноября 2011

Ваша таблица usuarios_grupos появляется один раз, но id_usuario может быть в двух таблицах, поэтому вы должны быть конкретны и попробовать вместо этого использовать объединение, и нет необходимости в Distict, например:

SELECT usuarios.id_usuario
FROM usuarios
WHERE usuarios.id_usuario
NOT IN 
(
   SELECT ug.id_usuario 
   FROM usuarios_grupos ug inner join grupos g 
   on ug.id_grupo = g.id_grupo
)
1 голос
/ 29 ноября 2011

Если id_usuario присутствует как в usuarios_grupos, так и в grupos, вам придется указать MySQL, какой из них вы хотите использовать:

  SELECT DISTINCT grupos.id_usuario FROM usuarios_grupos, grupos
  WHERE usuarios_grupos.id_grupo = grupos.id_grupo
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...