Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.27;
Скачать: CL | DM;

Вниз

Вытащить данные без повторов   Найти похожие ветки 

 
Nic ©   (2007-09-20 01:16) [0]

Доброго времени суток, уважаемые мастера!

Допустим, есть 3 таблицы

1. Поток
idPotok
...

2. Таблица-связка
idPotok
idGruppa

3. Группа
idGruppa
...

Как сделать такой запрос, который бы удалял или не отображал все повторяющиеся потоки с одинковым составом групп? Изучаю SQL совсем недавно, поэтому пока не получается сообразить как это сделать. Уже часа 2 пытаюсь рещить задачу, никак не получается.. :(


 
Германн ©   (2007-09-20 01:40) [1]

Слово distinct не знаешь?
Или не помогает? Тогда приведи текст запроса
И что есть "одинаковым составом групп"?

Лучше тут на форуме не использовать многоточия в сабже. Себе же хуже делаешь.


 
Nic ©   (2007-09-20 07:42) [2]


> Германн ©   (20.09.07 01:40) [1]

То, что на месте многоточия значения большого не имеет. Там свойства потока и группы соответственно.

Есть группы. Есть потоки. Скаждым потоком связано несколько групп. Например, поток А и поток Б. Если оба содержат грууппы В и Г, то надо отобразить только один из этих потоков. А лучше удалить из базы один из потоков (А или Б).

distinct не знаю. Попробую почитать help. Спасибо.


 
Кщд ©   (2007-09-20 07:59) [3]

>Nic ©   (20.09.07 01:16)
СУБД?


 
MsGuns ©   (2007-09-20 08:13) [4]

Таблица-связка лишняя т.к. одна группа не может входить в разные потоки. Да и таблица потоков не факт, что обязательна

Речь ведь о студенческих группах ?


 
Nic ©   (2007-09-20 09:00) [5]


> Кщд ©   (20.09.07 07:59) [3]

Как я мог забыть! :) MS SQL Server 2000


> MsGuns ©   (20.09.07 08:13) [4]

ИЛМ базы проектировал не я. На ней завязано большое количество других подсистем (часть из которых уже внедрена), поэтому довольно проблематично менять структуру базы данных.

Да, речь идёт о студенческих группах и потоках.


 
Sergey13 ©   (2007-09-20 09:10) [6]

> [2] Nic ©   (20.09.07 07:42)
> А лучше удалить из базы один из потоков

Добавь уникальность на группу в таблицу связке.


 
Ega23 ©   (2007-09-20 10:11) [7]

Ужос. 2 таблицы "поток" и "группа" должны быть одной, причём с иерархической структурой


 
Anatoly Podgoretsky ©   (2007-09-20 13:43) [8]

я бы поставил уникальный индекс на оба поля idPotok и idGruppa, даже не задумываясь об предметной области.


 
Sergey13 ©   (2007-09-20 13:58) [9]

> [8] Anatoly Podgoretsky ©   (20.09.07 13:43)

Это ничего не изменит в плане нежелательного задвоения групп.


 
Anatoly Podgoretsky ©   (2007-09-20 15:33) [10]

Не понял что ты имеешь в виду, при уникальном индексе, задвоения просто не будет. Правда по его задаче, эта таблица совсем не нужна, поскольку у него связь не многие ко многим, а один ко многом. Налицо ошибка проектирования.


 
Sergey13 ©   (2007-09-20 15:52) [11]

> [10] Anatoly Podgoretsky ©   (20.09.07 15:33)
> Не понял что ты имеешь в виду, при уникальном индексе, задвоения просто не будет.
Не будет задвоения пары Поток-Группа, но Группа сможет по прежнему быть в нескольких потоках (если потоков >2 ) одновременно, что судя по [2] нежелательно.


 
Anatoly Podgoretsky ©   (2007-09-20 16:04) [12]

Это да, но у него неверное определение модели, не та связь. Просто пусть удалит эту не нужную таблицу, а в таблице групп, пусть введет поле idpotok


 
Nic ©   (2007-09-20 20:40) [13]

А не меняя структуру базы нельзя реализовать сабж? Очень много разработок висит на этой базе -> нет уверенности в том, что всё, что уже внедренно в эксплуатацию будет нормально работать


 
Anatoly Podgoretsky ©   (2007-09-20 20:45) [14]

> Nic  (20.09.2007 20:40:13)  [13]

Ну минимум то, в виде индексов, можно сделать, перекроет большую часть проблем и не потребует переделки программ.


 
Anatoly Podgoretsky ©   (2007-09-20 21:01) [15]

Кстати если группа может быть связано только с одним потоком, то уникальный индекс только по полю группа решит проблему. И тогда не надо ставить уникальный индекс по обеим полям. Но это только в том случае если не используется история групп и потоков.


 
Nic ©   (2007-09-20 21:26) [16]

Всем спасибо за советы. Буду пробовать :)


 
Anatoly Podgoretsky ©   (2007-09-20 21:37) [17]

> Nic  (20.09.2007 21:26:16)  [16]

Ты разберись с предметной областью, решение в ней.



Страницы: 1 вся ветка

Текущий архив: 2008.01.27;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.016 c
2-1198144416
Василий
2007-12-20 12:53
2008.01.27
Скомандовать файлу справки из приложения


15-1198055878
Kolan
2007-12-19 12:17
2008.01.27
Delphi не ищет в подпапках SearchPath.


2-1198773700
art36
2007-12-27 19:41
2008.01.27
Перенос в TreeView


15-1198175127
краснаЯ ГВАРДИЯ
2007-12-20 21:25
2008.01.27
задачи


15-1198054027
LoDr
2007-12-19 11:47
2008.01.27
зависает firebird server