|
MySQL.RU - Webboard
Вернуться
Выборка нескольких значений по одному полю (Evgeniy) 20/06/2012 - 10:43:00
Re: Неужели трудно сперва подумать... (Akina) 20/06/2012 - 11:49:40
Re: Выборка нескольких значений по одному полю (Evgeniy) 20/06/2012 - 11:51:13
Re: Выборка нескольких значений по одному полю (Evgeniy) 20/06/2012 - 21:46:11
Re: Выборка нескольких значений по одному полю (Akina) 20/06/2012 - 22:15:14
Re: Поправка (Akina) 20/06/2012 - 22:16:17
Re: Поправка (Evgeniy) 20/06/2012 - 23:35:11
> Original message text:
> From: Evgeniy - 20/06/2012 - 10:43:00
> Subject:Выборка нескольких значений по одному полю
> -----------------
> Доброго времени суток!
> Существует таблица
> | id | cid | uid |
>
> Столкунлся с проблемой выборки типа WHERE cid=1 AND cid=2, т.е. вывод только тех полей, где есть и 1 И 2, а там где 1 ИЛИ 2 - не учитывать.
> FIND_IN_SET не подходит по причине структуры БД.
>
> Заранее благодарен за любую наводку или помощь.
>
From: Akina - 20/06/2012 - 22:15:14
Subject:Выборка нескольких значений по одному полю
-----------------
Попробую тогда переформулировать я.
Необходимо выбрать такие группы записей, что для каждой группы с совпадающим значением поля uid встречаются все значения поля cid из заданного набора.
Если такая формулировка верна - остаётся два вопроса:
1) список значений поля cid является исчерпывающим и исключающим? или наличие в группе записей с тем же uid, но не входящими в заданный список cid не влияет на выдачу той части записей этой группы, у которых cid входит в список?
2) Возможно ли дублирование пары значений cid - uid в нескольких записях?
Если на оба вопроса ответ - нет, то запрос может быть таким:
select t1.*
from datatable t1
join
(
select t2.uid
from datatable t2
where t2.cid=1 or t2.cid=2
group by t2.uid
having count(t2.cid) = 2
) q1
on t1.uid = q1.uid
where q1.cid=1 or q1.cid=2;
Внести изменения в запрос, если ответы на доп. вопросы иные - имхо несложно.
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
41422
|
|