powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с запросом!!!! (MSSQL2K)
9 сообщений из 9, страница 1 из 1
Помогите с запросом!!!! (MSSQL2K)
    #32016596
Anna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть две таблицы t1 (f1 int,f2 int,f3 char(10)) и t2 (f1 int,f2 int,f4 char(10)).таблицы связаны между собой по полям (f1,f2), связь один-ко-многим (одна запись в t1- много записей в t2)
нужно получить записи из т1 для которых есть соответствующие записи в т2 в которых поле f4 соответствует набору значений.
т.е.
№ t1.f1 t1.f2 t2.f1 t2.f2 t2.f4
1) 1 1 1 1 aa
2) 1 1 1 1 bb
3) 1 2 1 2 cc
4) 1 2 1 2 aa
5) 2 3 2 3 bb
6) 2 3 2 3 tt
набор значений ('aa','bb') в результат должны попасть записи 1 и 2 (но не те записи где только 'aa' или только 'bb')
заранее спасибо.
...
Рейтинг: 0 / 0
Помогите с запросом!!!! (MSSQL2K)
    #32016602
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вечером уже ничего не соображается, а бедной девушке помочь хочется
попробуйте двигаться в этом направлении, за правильность не ручаюсь

select t1.f1, t1.f2, min(t2.f4)
from t1 p, t2 f
where p.f1=f.f1 and p.f2=f.f2
and (select count(*) from t2 t where t.f1=f.f1 and t.f2=f.f2
and t.f4 in ('aa','bb'))=2
group by t1.f1, t1.f2
...
Рейтинг: 0 / 0
Помогите с запросом!!!! (MSSQL2K)
    #32016614
Чудик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зачем же так наворочено?

select * from t1
where (select count(*) from t2 where t1.f1=t2.f1 and t1.f2=t2.f2 and t2.f4 in ('aa', 'bb')) >= 2

Одно но, правда... Что если во второй таблице могут существовать много полей со значением 'aa' и не одного с 'bb'?
...
Рейтинг: 0 / 0
Помогите с запросом!!!! (MSSQL2K)
    #32016615
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 SergSuper
Либо я чего то не понял, либо Вы слишком уж намудрили, по моему нужно так:

select t1.* from t1 where t1.f1=t2.f1 and t1.f2=t2.f2 and t2.f4 in ('aa', 'bb')
...
Рейтинг: 0 / 0
Помогите с запросом!!!! (MSSQL2K)
    #32016616
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Чудик
По моему девушка немного себе противоречит, но мне кажется что я понял вопрос правильно
...
Рейтинг: 0 / 0
Помогите с запросом!!!! (MSSQL2K)
    #32016617
Чудик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ага, можно и усложнить

select * from t1 where
(select count(*) from (select distinct * from t2 where
t1.f1=t2.f1 and
t1.f2=t2.f2 and
t2.f4 in ('aa', 'bb')) as Q) = 2
...
Рейтинг: 0 / 0
Помогите с запросом!!!! (MSSQL2K)
    #32016618
Чудик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Genady

Девушке требуется выборка из первой таблицы, в которой для каждой записи обязательно существуют записи во второй со значениями поля f4 как 'aa', так и 'bb'.
...
Рейтинг: 0 / 0
Помогите с запросом!!!! (MSSQL2K)
    #32016621
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Genady
...в результат должны попасть записи 1 и 2 (но не те записи где только 'aa' или только 'bb')
вот этого Вы и не поняли, а не я намудрил

2 Чудик
бедная девушка еще просила вывести поле t2.f4, да еще так, чтобы оно не повторялось

Так что, ребятки, подумайте трижды, прежде чем меня критиковать
...
Рейтинг: 0 / 0
Помогите с запросом!!!! (MSSQL2K)
    #32016622
Anna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 all: cпасибо большое, проблема решилась.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с запросом!!!! (MSSQL2K)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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