Почему этот простой подзапрос MySQL не работает? - PullRequest
0 голосов
/ 07 апреля 2011

Этот запрос практически идентичен рабочему примеру, который мне был показан:

SELECT * FROM entities.entities
    WHERE entities.entities.id =
        (SELET MAX(entities.entities.id) FROM entities.entities);

Этот запрос с самого начала был намного проще, но я везде добавляю имена баз данных и таблиц, чтобы быть уверенным, что запрос безупречен.

Выдает не очень полезную ошибку:

Ошибка SQL (1064): в синтаксисе SQL есть ошибка; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с «MAX (id) FROM entity)» в строке 3

Я убедился, что у меня MySQL версии 5+, я убедился, что подзапрос является скалярным подзапросом, то есть он возвращает только один столбец с одной строкой и поддерживается в разделе WHERE запроса.

Я не вижу в этом ничего плохого.

Введите экспертов!

Ответы [ 4 ]

5 голосов
/ 07 апреля 2011

Ваш код должен выглядеть следующим образом:

SELECT * FROM entities.entities
WHERE entities.entities.id =
    (SELECT MAX(entities.entities.id) FROM entities.entities);

(Вы неправильно набрали «SELECT» как «SELET».)

1 голос
/ 07 апреля 2011

Да, не забудьте сначала проверить свой код.

SELECT * FROM entities.entities
WHERE entities.entities.id =         
(SELECT MAX(entities.entities.id) FROM entities.entities); 

SELET -> SELECT

С уважением

1 голос
/ 07 апреля 2011

Вы неправильно написали select:

SELECT * FROM entity.entities WHERE entity.entities.id = ( SELECT MAX (entity.entities.id) FROM entity.entities);

1 голос
/ 07 апреля 2011

Попробуйте это:

SELECT * FROM entities.entities
    WHERE entities.entities.id =
        (SELECT MAX(entities.entities.id) FROM entities.entities);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...