Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 281
от 05.09.2007, 13:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 443, Экспертов: 61
В номере:Вопросов: 1, Ответов: 5


Вопрос № 100346: Привет всем! Подскажите, как найти все записи-дубликаты, у которых одинаковые значения по определенному полю (полям)? Пробовал поиграться с DISTINCT, но так и не смог его приспособить.. :) Помогите SQL'ем, люди добрые! :) Заранее спас...

Вопрос № 100.346
Привет всем!
Подскажите, как найти все записи-дубликаты, у которых одинаковые значения по определенному полю (полям)?
Пробовал поиграться с DISTINCT, но так и не смог его приспособить.. :)
Помогите SQL'ем, люди добрые! :)
Заранее спасибо!
Отправлен: 31.08.2007, 13:04
Вопрос задал: Stals (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Ole
Здравствуйте, Stals!
SELECT DISTINCT поле1, поле2 FROM таблица1, таблица2 WHERE поле1 = .... AND поле2 = ....
Ответ отправил: Ole (статус: 3-ий класс)
Ответ отправлен: 31.08.2007, 13:13

Отвечает: Андрей Тимофеев
Здравствуйте, Stals!
select ИмяПоля--также можно вывести count(*) чтобы увидеть количество повторов
from ИмяТаблицы
group by ИмяПоля
Having count(*)>1--Здесь проверяем, что уже такие есть
Ответ отправил: Андрей Тимофеев (статус: 6-ой класс)
Ответ отправлен: 31.08.2007, 13:17

Отвечает: Архангельский Андрей Германович
Здравствуйте, Stals!

Select Field1 from Table
group by Field1
Having Count(Field1)>1

Этот запрос найдет все строки у которых значение поля Field1 встречается более 1 раза, т.е. дублируются

---------
Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО
Ответ отправил: Архангельский Андрей Германович (статус: Специалист)
Ответ отправлен: 31.08.2007, 13:26

Отвечает: Карпов Алексей
Здравствуйте, Stals!
Если необходимо при этом получить нетолько данные которые повторяются но и допустим другие выбрать поля:
select t1.ID as ID1, t2.ID as ID2 t1.<column1>, <column2> ... from table t1
inner join table t2 on t1.<поле в котором одинаковые значения> = t2.<поле в котором одинаковые значения> and t1.ID <> t2.ID -
and t1.ID <> t2.ID - эта конструкция предполагает чтоб идентификаторы не повторялись тоесть хотябы малейшие различия.
Ответ отправил: Карпов Алексей (статус: 9-ый класс)
Ответ отправлен: 31.08.2007, 13:43

Отвечает: Gines
Здравствуйте, Stals!

Можно таким образом, используя рекурсию:

select n.id
from table1 as n, table2 as m
where n.target_field=m.target_filed and n.id<>m.id

где:
id-ключевое поле
target_filed-искомое поле
Ответ отправил: Gines (статус: 4-ый класс)
Ответ отправлен: 31.08.2007, 18:28


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.58 от 30.08.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное