powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как выделить подмножество?
5 сообщений из 5, страница 1 из 1
Как выделить подмножество?
    #32379752
Artfil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеются две таблицы со общим столбцом id. 1 таблица является подмножеством 2. Как выделить те id, которые не попадают в таблицу 1. То есть мне нужен аналог select minus select из Oracla.
...
Рейтинг: 0 / 0
Как выделить подмножество?
    #32379760
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оно?

Код: plaintext
1.
2.
select t2.id
from t2 left join t1 on t1.id=t2.id
where t1.id is null
...
Рейтинг: 0 / 0
Как выделить подмножество?
    #32381076
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedd
мне кажется (не проверял) здесь будет возвращаться всегда пустой набор... Ты сам-то проверял то, что советуешь?

не ручаюсь за скорость, но особенно для небольших объемов будет нормально

Код: plaintext
1.
 select * from t2 where id not in (select id from t1)
...
Рейтинг: 0 / 0
Как выделить подмножество?
    #32381232
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не, не проверял!

но такую sql конструкцию использую(овал) постоянно в mysql и в access!

а сейчас мне сказали, что в firebird это не сработает... но я не понимаю почему!

таблица t1 присоединяется слева, то есть будут представлены все записи из t2, связанные с ними записи из t1. если связанных записей нет, то там будут null. их то мы и отбираем во where - то есть тех из t2, для которых нет t1, что человек и просил. что здесь может не работать??
...
Рейтинг: 0 / 0
Как выделить подмножество?
    #32381393
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>fedd

Приведенный запрос абсолютно адекватен. И работает везде.

Единственный момент - это скорость.
Наиболее быстро
SELECT T2.id FROM T2
WHERE NOT (T2.id = SOME (SELECT T1.id FROM T1))
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как выделить подмножество?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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