|
MySQL.RU - Webboard
Вернуться
запрос из двух таблиц (alexander) 23/03/2005 - 12:05:58
Re: запрос из двух таблиц (Валентин) 23/03/2005 - 12:32:32
> Original message text:
> From: alexander - 23/03/2005 - 12:05:58
> Subject:запрос из двух таблиц
> -----------------
> Приветствую!
> Подскажите пожалуйста..
> есть две таблицы: допустим товары и рубрики. Товары могут находиться в нескольких рубриках. И есть определнный флаг товара (но он может быть разным, в зависимости от рубрики)
> Итого три таблицы:
> 1. table items: (товары)
> id
> title
>
> 2. table groups: (рубрики)
> id
> title
>
> 3. table item_groups: (связь товар-рубрика)
> item_id
> group_id
> flag
>
> Есть необходимость выбрать товары (без учета рубрики) с сортировкой по полю flag:
>
> SELECT a.id, a.title, b.flag FROM items AS a LEFT JOIN groups AS b ON a.id = b.item.id ORDER BY b.flag, a.title;
>
> Список получается, сортируется нормально, но если товар входит в несколько рубрик, то записи в выборке повторяются (чего и следовало ожидать, т.к. в таблице item_groups значения item_id повторяются). DISTINCT на id не помогает (в этом повторяются только те записи, которые входят в несколько рубрик и у которых при этом разный flag).
>
> как избавиться от повторений? )
>
>
From: Валентин - 23/03/2005 - 12:32:32
Subject:запрос из двух таблиц
-----------------
Попробуй сгруппировать по ID товара.
SELECT a.id, a.title, b.flag
FROM items AS a
LEFT JOIN groups AS b ON a.id = b.item.id
Group By a.ID
ORDER BY b.flag, a.title;
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
20963
|
|