Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите построить запрос / 8 сообщений из 8, страница 1 из 1
20.03.2014, 12:08:17
    #38591649
Лёша П.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос
Добрый день.

Возможно вопрос простой, но что-то не приходит в голову решение.

Есть таблица:

ID, TYPE
1 2
1 3
1 4
2 1
2 2
3 5
3 6
3 5

Необходимо выбрать все ID у которых есть TYPE 2 и 3. Т.е. в нашем случае результатом должно быть:

ID
1

Спасибо.
...
Рейтинг: 0 / 0
20.03.2014, 12:20:58
    #38591666
Помогите построить запрос
...
where type in (2,3)
...
group by id
having count(distinct type) = 2
...
Рейтинг: 0 / 0
20.03.2014, 12:46:53
    #38591711
Лёша П.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос
Спасибо большое.

А нет других, чтобы не привязываться к count(distinct type)?
...
Рейтинг: 0 / 0
20.03.2014, 13:14:30
    #38591767
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос
Лёша П.Спасибо большое.

А нет других, чтобы не привязываться к count(distinct type)?а чем вас не устраивает count(distinct type)?
...
Рейтинг: 0 / 0
20.03.2014, 13:17:41
    #38591770
Лёша П.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос
tanglirЛёша П.Спасибо большое.

А нет других, чтобы не привязываться к count(distinct type)?а чем вас не устраивает count(distinct type)?

Устраивает, вполне.

Однако, если количество TYPE меняется, то нужно вставлять количество в запрос. Это совершенно не сложно, но может есть другой способ, просто интересно.
...
Рейтинг: 0 / 0
20.03.2014, 13:36:47
    #38591812
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос
Лёша П.,

ну, можно ещё через
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select distinct type 
from table
where 
 exists (select 0 from table q where q.id=table.id and q.type=2)
 and
 exists (select 0 from table q where q.id=table.id and q.type=3)
-- и сюда дописать ещё кучу экзистов при необходимости
-- но вот какая разница, дописывать экзисты или дописывать значения и их количество?
...
Рейтинг: 0 / 0
20.03.2014, 15:45:49
    #38592006
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос
Лёша П.Спасибо большое.

А нет других, чтобы не привязываться к count(distinct type)?having min(type)<max(type)

вычисляется несколько быстрее, чем count(distinct)
...
Рейтинг: 0 / 0
21.03.2014, 05:11:13
    #38592498
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите построить запрос
Cygapb-007Лёша П.Спасибо большое.

А нет других, чтобы не привязываться к count(distinct type)?having min(type)<max(type)

вычисляется несколько быстрее, чем count(distinct)но если надо 3 и более типов, то уже не прокатит
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите построить запрос / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]