Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как удалить дублированные данные? Одну запись оставить, другую убрать. 
:(
    Опции темы
neo03
  Дата 25.7.2011, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



Случайно добавил в таблицу Authors дважды данные авторов книг. Как убрать вторые записи и оставить первые? Всем спасибо.
PM MAIL   Вверх
Akina
Дата 25.7.2011, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Скопировать данные без дубликатов во временную таблицу, почистить основную, вернуть данные.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Данкинг
Дата 25.7.2011, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 1
Всего: 130



СУБД какая? Ну, как-то так, по совету Акины - выбор в новую таблицу:
Код

select dist AUTHOR from dbf() into table new




--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
neo03
Дата 27.7.2011, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



СУБД mysql. Столкнулся с ней изучая книгу К.Хорстмана и Г.Корнелла: "Java2.Том2. Тонкости программирования." Глава4. Пример "ExecSQL". Честно говоря, я думал, что есть какое-то специальное средство в SQL для такого случая. Ситуация - то, в общем, стандартная. Но, всё равно, всем большое спасибо. Был очень рад получить Ваши ответы. smile 
PM MAIL   Вверх
Akina
Дата 27.7.2011, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(neo03 @  27.7.2011,  19:51 Найти цитируемый пост)
я думал, что есть какое-то специальное средство в SQL для такого случая. Ситуация - то, в общем, стандартная.

Нет, это стандартная ОШИБКА проектирования базы. Не был наложен необходимый constraint.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
neo03
Дата 28.7.2011, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



Спасибо ещё раз. Буду иметь ввиду. Про constraint и т.д. Почитаю где-нибудь. Будут вопросы - обращусь.
PM MAIL   Вверх
Akina
Дата 28.7.2011, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(neo03 @  28.7.2011,  21:29 Найти цитируемый пост)
Про constraint и т.д. Почитаю где-нибудь.

http://dev.mysql.com/doc/refman/5.5/en/create-table.html


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
DimW
Дата 1.8.2011, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 4
Всего: 44



Цитата(neo03 @  27.7.2011,  18:51 Найти цитируемый пост)
Честно говоря, я думал, что есть какое-то специальное средство в SQL для такого случая.


специальное средство:
Код

SQL> create table test_table
  2  (id number
  3  ,name varchar2(100));
 
Table created
SQL> insert into test_table
  2  values (10, 'Баркер');
 
1 row inserted
SQL> insert into test_table
  2  values (20, 'Губер');
 
1 row inserted
SQL> insert into test_table
  2  values (30, 'Кайт');
 
1 row inserted
SQL> insert into test_table
  2  values (100, 'Баркер');
 
1 row inserted
SQL> insert into test_table
  2  values (200, 'Губер');
 
1 row inserted
SQL> insert into test_table
  2  values (300, 'Кайт');
 
1 row inserted

SQL> select * from test_table;
 
        ID NAME
---------- --------------------------------------------------------------------------------
        10 Баркер
        20 Губер
        30 Кайт
       100 Баркер
       200 Губер
       300 Кайт
 
6 rows selected

SQL> -- дубликаты
SQL> select t1.id
  2    from test_table t1
  3        ,test_table t2
  4   where t1.name = t2.name
  5     and t1.id > t2.id;
 
        ID
----------
       100
       200
       300
       
SQL> -- удаляем дубликаты
SQL> delete from test_table
  2   where id in (select t1.id
  3                  from test_table t1
  4                      ,test_table t2
  5                 where t1.name = t2.name
  6                   and t1.id > t2.id);
 
3 rows deleted

SQL> select * from test_table;
 
        ID NAME
---------- --------------------------------------------------------------------------------
        10 Баркер
        20 Губер
        30 Кайт
 




Это сообщение отредактировал(а) DimW - 1.8.2011, 11:43
PM MAIL ICQ   Вверх
Zloxa
Дата 1.8.2011, 12:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(DimW @  1.8.2011,  11:42 Найти цитируемый пост)
-- удаляем дубликаты

два джойнна, чрез экзист - один. smile 


/*эх, сразу видно - соскучился ты по датабаздевелопменту*/


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
DimW
Дата 1.8.2011, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 4
Всего: 44



Цитата(Zloxa @  1.8.2011,  12:42 Найти цитируемый пост)
чрез экзист - один.
  
 smile Я не специально  smile 

Цитата(Zloxa @  1.8.2011,  12:42 Найти цитируемый пост)
/*эх, сразу видно - соскучился ты по датабаздевелопменту*/ 

Товарищ, уже год думаю как от него отделаться, старею наверное, думать больше нравится... - как видишь одновременно не получается  smile  
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.1084 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.