Форум: "Базы";
Текущий архив: 2008.01.27;
Скачать: [xml.tar.bz2];
ВнизВытащить данные без повторов Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.006 c