Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Найти группы в которых учатся студенты с конкретными фамилиями.  [new]
questioner
Member

Откуда:
Сообщений: 1906
Есть проблема с написанием запроса.
Упрощённо ситуация выглядит следующим образом:

Есть две таблицы: студент и групппа

Надо найти такие группы, в которых учатся студенты с фамилиями. Фамилии это масиив, который является входящей информацией.

В уме только такое решение, что делать запрос по каждой фамилии и делать intersection.

Посоветуете что-нибудь получше?
5 июл 15, 00:39    [17853216]     Ответить | Цитировать Сообщить модератору
 Re: Найти группы в которых учатся студенты с конкретными фамилиями.  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
questioner,

Select ..
From group gr
Where exists (seklect 1 1 from stud st where st.gr_id = gr.id and st.fam in (списрк фамилий))
5 июл 15, 02:11    [17853335]     Ответить | Цитировать Сообщить модератору
 Re: Найти группы в которых учатся студенты с конкретными фамилиями.  [new]
questioner
Member

Откуда:
Сообщений: 1906
Mike_za,

Насколько я понимаю этот запрос вернёт группы, в которых есть студенты с фамилиями из списка. А надо, чтобы были именно все фамилии в одной группе
5 июл 15, 11:57    [17853588]     Ответить | Цитировать Сообщить модератору
 Re: Найти группы в которых учатся студенты с конкретными фамилиями.  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
questioner
Mike_za,

Насколько я понимаю этот запрос вернёт группы, в которых есть студенты с фамилиями из списка. А надо, чтобы были именно все фамилии в одной группе


1. дайте структуру таблиц
2. напишите, что вы хотите, хотя бы на примере
5 июл 15, 12:56    [17853684]     Ответить | Цитировать Сообщить модератору
 Re: Найти группы в которых учатся студенты с конкретными фамилиями.  [new]
invm
Member

Откуда: Москва
Сообщений: 9825
questioner
А надо, чтобы были именно все фамилии в одной группе
Реляционное деление
5 июл 15, 14:05    [17853812]     Ответить | Цитировать Сообщить модератору
 Re: Найти группы в которых учатся студенты с конкретными фамилиями.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
questioner
Насколько я понимаю этот запрос вернёт группы, в которых есть студенты с фамилиями из списка.
Да, потому что вы хотите получить:
questioner
Надо найти такие группы, в которых учатся студенты с фамилиями.
5 июл 15, 16:25    [17854066]     Ответить | Цитировать Сообщить модератору
 Re: Найти группы в которых учатся студенты с конкретными фамилиями.  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
А... Ну коли так, то надо джоин с группировкой и count = количеству в списке
5 июл 15, 20:13    [17854611]     Ответить | Цитировать Сообщить модератору
 Re: Найти группы в которых учатся студенты с конкретными фамилиями.  [new]
Oleksii Kovalov
Member

Откуда:
Сообщений: 100
1. найти группы, в которых нет хотя бы одного студента из списка
2. Из всех групп вычесть группы, найденные в п.1.
5 июл 15, 22:28    [17855108]     Ответить | Цитировать Сообщить модератору
 Re: Найти группы в которых учатся студенты с конкретными фамилиями.  [new]
questioner
Member

Откуда:
Сообщений: 1906
alexeyvg
questioner
Насколько я понимаю этот запрос вернёт группы, в которых есть студенты с фамилиями из списка.
Да, потому что вы хотите получить:
questioner
Надо найти такие группы, в которых учатся студенты с фамилиями.


Хотелось бы найти такие группы, в которых учатся ВСЕ студенты из списка. сорри за неточность - думал очевидно.
7 июл 15, 11:54    [17861342]     Ответить | Цитировать Сообщить модератору
 Re: Найти группы в которых учатся студенты с конкретными фамилиями.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8805
questioner,

inner join, exists().
7 июл 15, 11:57    [17861362]     Ответить | Цитировать Сообщить модератору
 Re: Найти группы в которых учатся студенты с конкретными фамилиями.  [new]
questioner
Member

Откуда:
Сообщений: 1906
invm
questioner
А надо, чтобы были именно все фамилии в одной группе
Реляционное деление


Я так понимаю, что реляционное деление это если нам надо найти такую группу, в которой учатся вообще все студенты из таблицы студентов.
7 июл 15, 12:04    [17861418]     Ответить | Цитировать Сообщить модератору
 Re: Найти группы в которых учатся студенты с конкретными фамилиями.  [new]
Glory
Member

Откуда:
Сообщений: 104751
questioner
Я так понимаю, что реляционное деление это если нам надо найти такую группу, в которой учатся вообще все студенты из таблицы студентов.

А ваш "спискок с конкретными фамилиями" не является "таблицей студентов" ?
7 июл 15, 12:07    [17861458]     Ответить | Цитировать Сообщить модератору
 Re: Найти группы в которых учатся студенты с конкретными фамилиями.  [new]
questioner
Member

Откуда:
Сообщений: 1906
Glory
questioner
Я так понимаю, что реляционное деление это если нам надо найти такую группу, в которой учатся вообще все студенты из таблицы студентов.

А ваш "спискок с конкретными фамилиями" не является "таблицей студентов" ?


мой список является частью таблицы студентов.
7 июл 15, 12:56    [17861910]     Ответить | Цитировать Сообщить модератору
 Re: Найти группы в которых учатся студенты с конкретными фамилиями.  [new]
Glory
Member

Откуда:
Сообщений: 104751
questioner
Glory
пропущено...

А ваш "спискок с конкретными фамилиями" не является "таблицей студентов" ?


мой список является частью таблицы студентов.

И в чем разница для запороса, если в нем будет использован "спискок", а не "таблица" ?
7 июл 15, 12:57    [17861922]     Ответить | Цитировать Сообщить модератору
 Re: Найти группы в которых учатся студенты с конкретными фамилиями.  [new]
questioner
Member

Откуда:
Сообщений: 1906
Glory
questioner
пропущено...


мой список является частью таблицы студентов.

И в чем разница для запороса, если в нем будет использован "спискок", а не "таблица" ?


Ну всмысле в таблице 200 записей, а в моем списке 5
8 июл 15, 10:05    [17865942]     Ответить | Цитировать Сообщить модератору
 Re: Найти группы в которых учатся студенты с конкретными фамилиями.  [new]
Glory
Member

Откуда:
Сообщений: 104751
questioner
Ну всмысле в таблице 200 записей, а в моем списке 5

Да хоть миллион
Список - это тоже таблица.
8 июл 15, 18:21    [17868963]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить