Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в ib6 сравнить с null


Иванов Сергей ©   (2003-04-02 17:28:00) 

надо удалить из одной таблицы данные для которых нет соответствующей записи в другой таблице
как написать что-то вроде

select *
from table1 t1 left join table2 t2 on t1.field1 = t2.field1
where t2.field1 = null;

а про удалить вообще не понятно.


Иванов Сергей   (2003-04-03 12:42:00) [1]

DELETE FROM rows
where not exists (select * from docs where docs.doc_id = rows.row_Doc_id);

Работает. Это я неправильно документы удалил изначально и потом естественно не удалялись строки.

Спасибо всем.


Иванов Сергей   (2003-04-03 11:44:00) [2]

похоже, что так и есть. сейчас проверю.

видно иp
select count(*) from rows;
637135 штук.
похоже я docs не правильно удалил.


Johnmen   (2003-04-03 11:23:00) [3]

>Иванов Сергей (03.04.03 11:08)
>...тихо отрабатывет, без ошибок, но число строк не меняется.
>...так тоже самое

НЕ МОЖЕТ БЫТЬ ! Проблема явно в другом...Кстати, не обозначено, как видно, что "число строк не меняется".


Иванов Сергей   (2003-04-03 11:08:00) [4]

DELETE FROM rows
where not exists (select * from docs where docs.doc_id = rows.row_Doc_id);

так тоже самое


stone   (2003-04-03 10:17:00) [5]

DELETE FROM table1 where not exists (select * from Table2 where Table2.Field=Table1.Field)


Иванов Сергей   (2003-04-03 10:04:00) [6]

А вот и не работает.

DELETE FROM rows
WHERE rows.row_Doc_id not in(SELECT docs.doc_id From docs);

тихо отрабатывет, без ошибок, но число строк не меняется.


Smashich   (2003-04-02 17:49:00) [7]

совершенно справедливо:)


Иванов Сергей   (2003-04-02 17:46:00) [8]

написанно так красиво

а, что не красиво?

DELETE FROM A WHERE A.id not in(SELECT B.id From B)

это имеется ввиду, что зачение A.id не найдено в B.id
я правильно понял?


Smashich   (2003-04-02 17:32:00) [9]

:) ну да ну да IS NULL а я внимания не обратил что написанно так красиво:) "t2.field1 = null";


Соловьев   (2003-04-02 17:31:00) [10]


...
where t2.field1 is null
...


Smashich   (2003-04-02 17:31:00) [11]

DELETE FROM A WHERE A.id not in(SELECT B.id From B)


Наверх

Титульная страница Поиск, карта сайта Написать письмо