Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Вывод строк отсутствующих в другой таблице. / 8 сообщений из 8, страница 1 из 1
18.03.2011, 18:41
    #37172811
garmahis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод строк отсутствующих в другой таблице.
Здравствуйте! Есть две одинаковые по структуре таблицы. Необходимо вывести строки из табл. А, которые отсутствуют в талб. В

таблица А
id sc ref
1 1 1
2 2 2
3 3 3
4 4 4
таблица B
id sc ref
2 2 2
3 3 3

Необходимо, чтобы select вернул
id sc ref
1 1 1
4 4 4

Подскажите пожалуйста как правильно написать запрос. Спасибо.
...
Рейтинг: 0 / 0
18.03.2011, 19:43
    #37172893
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод строк отсутствующих в другой таблице.
Код: plaintext
select * from A where id not in (select id from B)

Читай букварь: http://www.sql.ru/docs/sql/u_sql/index.shtml
...
Рейтинг: 0 / 0
19.03.2011, 12:33
    #37173422
garmahis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод строк отсутствующих в другой таблице.
Спасибо, что ответили. Наверно я не правильно сформулировал вопрос. Меня интересует не соответствие записей по ВСЕМ стольбцам, а не только по id . Выкрутился так :

Код: plaintext
1.
2.
3.
4.
delete from A 
from A, B
where a.REF=b.REF
and a.SC=b.SC
and a.id=b.id

Как это селектом сделать?
Что-то типа такого :
Код: plaintext
1.
2.
3.
4.
select A.*,B.id from A,B
where a.REF*=b.REF
and a.SC*=b.SC
and a.id*=b.id
and B.id is null

Не срабатывает.
...
Рейтинг: 0 / 0
19.03.2011, 15:38
    #37173594
garmahis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод строк отсутствующих в другой таблице.
Т.е. для ситуации :
таблица А
id sc ref
1 1 1
1 2 3
2 2 2
3 3 3
4 4 4
таблица B
id sc ref
1 2 3
2 2 2
3 3 3

чтобы select вернул
id sc ref
1 1 1
4 4 4
...
Рейтинг: 0 / 0
20.03.2011, 02:00
    #37174024
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод строк отсутствующих в другой таблице.
On 19.03.2011 12:33, garmahis wrote:
> Спасибо, что ответили. Наверно я не правильно сформулировал вопрос. Меня
> интересует не соответствие записей по *ВСЕМ* стольбцам, а не только по *id* .

Тогда IN заменяйте NOT EXISTS с коррелированныйм подзапросом.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
20.03.2011, 11:42
    #37174093
invariant
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод строк отсутствующих в другой таблице.
garmahisКак это селектом сделать?
Что-то типа такого :
Код: plaintext
1.
2.
3.
4.
select A.*,B.id from A,B
where a.REF*=b.REF
and a.SC*=b.SC
and a.id*=b.id
and B.id is null

Не срабатывает.

База какая? Если ASE (для ASA не смотрел, не знаю), надо вместо T-SQL outer join ANSI outer join делать. Тогда сработает.
то есть так
Код: plaintext
1.
2.
3.
4.
5.
select a.*, b.id
from a left outer join b
  on a.id=b.id and a.sc=b.sc and a.ref=b.ref
where
  b.id is null and b.sc is null and b.ref is null

ANSI joins в ASE по-другому работают.
...
Рейтинг: 0 / 0
20.03.2011, 20:29
    #37174440
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод строк отсутствующих в другой таблице.
invariantБаза какая? Если ASE (для ASA не смотрел, не знаю), надо вместо T-SQL outer join ANSI outer join делать. Тогда сработает.
то есть так
Код: plaintext
1.
2.
3.
4.
5.
select a.*, b.id
from a left outer join b
  on a.id=b.id and a.sc=b.sc and a.ref=b.ref
where
  b.id is null and b.sc is null and b.ref is null

ANSI joins в ASE по-другому работают.
В принципе там достаточно будет одной проверки в where:
Код: plaintext
1.
2.
3.
select a.*
from a
left outer join b  on a.id=b.id and a.sc=b.sc and a.ref=b.ref
where b.id is null
и это вполне стандартные ANSI joins которые работают одинаково и в ASE и в SA.
...
Рейтинг: 0 / 0
21.03.2011, 09:50
    #37174752
garmahis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывод строк отсутствующих в другой таблице.
Благодарю за помощь!
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Вывод строк отсутствующих в другой таблице. / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]