SQL: получение повторяющихся записей с этим запросом - PullRequest
1 голос
/ 18 января 2011

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

Структура базы данных выглядит следующим образом:

сообщений

id

body

city_id

tags_ref

row_id

table

tag_id

теги

id

safe_tag

tag

Таким образом, tags_ref - это таблица ссылок между сообщениями и тегами.

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

Даже с помощью этого запроса:

SELECT P.* FROM posts as P WHERE P.city_id = 2

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

Я также пробовал:

DISTINCT (P.id), P.* FROM posts as P WHERE P.city_id = 2

Я знаю, что в моей таблице сообщений только 7 строк, поэтому я знаю, что дублирующиеся записи на самом деле не имеютсуществует, поскольку я считаю 7 уникальных сообщений.

Может кто-нибудь помочь мне выяснить, где я ошибся?

База данных MySQL

Спасибо,

Билли

1 Ответ

0 голосов
/ 18 января 2011
DISTINCT (P.id), P.* FROM posts as P WHERE P.city_id = 2

Ваш DISTINCT здесь ничего не делает, когда некоторые значения в других полях (в P. *) отличаются. Попробуйте запросить сообщения из всей таблицы без фильтра, чтобы увидеть, что вы на самом деле получили.

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