![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
запрос на выборку одинаковых записей [D6, 2000]
Андрей гость © (2005-09-14 19:21:00)Уважаемые, как написать запрос, чтобы выбрать поля с одинаковыми записями
msguns (2005-09-16 10:26:00) [1]>Anatoly Podgoretsky © (15.09.05 14:07) [5]
>В записи не может быть одинаковых полей!
Во-первых, сколько угодно. Если речь идет о содержимомполей, а не их названии, конечно. Но и тут есть исключения. Например MSSQL может создать временную таблицу (например, при выполнении запроса с агрегатными функциями), где очень запросто могут присутствовать одноименные колонки - поля записи.
Я имел в виду записи, информация в которых полностью идентична. Во всех полях.
>Андрей гость (16.09.05 00:07) [11]
>А как построить запрос чтобы в таблице одинаковые записи (дубликаты) убирало, оставляя одну запись из дубликатов и строило таблицу заново но только уже без дубликатов
Упрощенно, но грамотно, можно решить задачу блокировки записи в таблицу повторяющихся данных двумя путями.
1. Клиентский. Перед добавлением давать запрос на выборку из таблицы записей с такими же значениями полей, как у добавляемой. Если есть, то программа "ругается" и добавления не происходит
2. Серверный. С помощью первичного ключа (автоинкремента например) или использования уникальных индексов.
Андрей гость (2005-09-16 00:07:00) [2]Большое спасибо, на первый вопрос ответ есть.
А как построить запрос чтобы в таблице одинаковые записи (дубликаты) убирало, оставляя одну запись из дубликатов и строило таблицу заново но только уже без дубликатов
Fay (2005-09-15 18:54:00) [3]2 Германн © (15.09.05 1:34) [3]
Ты сам читаешь, что написал? Если я не прав ([2]), то где в [1] выборка полей?
Anatoly Podgoretsky (2005-09-15 18:32:00) [4]Может тебе группировка нужна.
Reindeer Moss Eater (2005-09-15 15:25:00) [5]А нам пофик правильно он сформулирован или нет
Главное что бы был правильно дан ответ.
:)
Андрей гость (2005-09-15 15:23:00) [6]Может я неправильно сформулировал вопрос, но суть такова - в таблице есть строки в которых по четырем колонкам записи одинаковы, вот эти строки надо выбрать.
И еще один вопрос. когда выполняется запрос на выборку записей в двух таблицах и сохраняется в третью таблицу, то строки с записями которых нет в одной из таблиц просто исчезают,т.е. не переносятся в третью таблицу. Как перенести все записи одной из таблиц дополнив записями из другой таблицы. Извиняюсь за непонятность, мне вродебы все понятно.
Reindeer Moss Eater (2005-09-15 15:17:00) [7]Уважаемые, как написать запрос, чтобы выбрать поля с одинаковыми записями
select * from tablename where primarykeyfield = value;
Выберутся все поля, имеющие одинаковую запись.
Anatoly Podgoretsky (2005-09-15 14:07:00) [8]msguns © (15.09.05 12:37) [4]
В записи не может быть одинаковых полей!
В вопрос не понятен, может речь про соединение?
msguns (2005-09-15 12:37:00) [9]Может, записи с одинаковыми полями ?
Германн (2005-09-15 01:34:00) [10]Сабж, в целом, конечно недосформулирован, и посему непонятен.
Но
> Fay © (15.09.05 00:20) [2]
>
> 2 Андрей гость (14.09.05 19:21)
>
> >> выбрать поля с одинаковыми записями
> Так не бывает
в целом не прав.
wicked © (14.09.05 23:01) [1]
дал приемлемое в некоем конкретном случае решение. На сей момент - правильное. Имхо.
Fay (2005-09-15 00:20:00) [11]2 Андрей гость (14.09.05 19:21)
>> выбрать поля с одинаковыми записями
Так не бывает
З.Ы.
СУБД, видимо, Postgree SQL ? Или Informix?
wicked (2005-09-14 23:01:00) [12]включаем телепатор....
предположительно из БД, предположительно, используя SQL....
если я прав, то тогда, в общем случае, так
select <field_name>, count(<field_name>)
from <table_name>
group by <field_name>
having(count(<field_name>)) > 1
выберет из таблицы <table_name> повторяющиеся поля <field_name> и укажет, сколько раз такое значение встречается....