Использование «отличного» в запросе MySQL - PullRequest
0 голосов
/ 02 февраля 2009

У меня следующий запрос.

SELECT p.author_name, p.author_id,
DISTINCT p.topic_id, t.title
FROM `ibf_posts` p, `ibf_topics` t
WHERE p.topic_id = t.tid
ORDER BY pid DESC
LIMIT 8"

Когда я запускаю его, я получаю следующую ошибку MySQL:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DISTINCT p.topic_id, t.title FROM `ibf_posts` p, `ibf_topics` t WHERE p' at line 1

если я удалю ключевое слово DISTINCT, запрос будет работать без проблем.

Что я делаю не так?

Эта схема взята из сообщения и таблицы тем Invision Power Board. Я пытаюсь получить название последних 8 тем, которые имеют самые новые сообщения. В списке самых последних сообщений я не хочу, чтобы одна и та же тема появлялась более одного раза. Я хочу уникальный список названий.

таблица: ibf_posts -pid -имя автора -author_id -topic_id

таблица: ibf_topics -tid -title

tid совпадает с topic_id

Ответы [ 2 ]

7 голосов
/ 02 февраля 2009

Это

SELECT DISTINCT ...

Нельзя указывать DISTINCT только для одного столбца; это работает только для хранения полных дубликатов записей из набора результатов.

0 голосов
/ 02 февраля 2009

Отличное должно быть до p.author_name. Вы не можете выбрать только p.topic_id, чтобы быть отличным в этом случае. Если то, что вы хотите сделать, это то, что я думаю, то вам нужно найти предложение GROUP BY.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...