powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / "Исключающее ИЛИ" в запросе
7 сообщений из 7, страница 1 из 1
"Исключающее ИЛИ" в запросе
    #33913544
Igor Kozlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет Всем!

Есть две таблицы A и B.
Подскажите, плз, как получить таблицу C которая бы содержала все записи из таблицы A кроме тех, id которых имеется в таблице B ?

Большое спасибо!
...
Рейтинг: 0 / 0
"Исключающее ИЛИ" в запросе
    #33913657
victor_kr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
select id
  from (select  1 ::int4 as id union all select  2 ::int4 as id ) as a
  where not exists (
                   select id
                     from ( select  2 ::int4 as id union all select  3 ::int4 as id ) as b
                     where a.id = b.id
                   )
...
Рейтинг: 0 / 0
"Исключающее ИЛИ" в запросе
    #33913658
akie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Igor KozlovПривет Всем!

Есть две таблицы A и B.
Подскажите, плз, как получить таблицу C которая бы содержала все записи из таблицы A кроме тех, id которых имеется в таблице B ?

Большое спасибо!

SELECT A.* FROM A WHERE A.id NOT IN (select B.id from B);
...
Рейтинг: 0 / 0
"Исключающее ИЛИ" в запросе
    #33913782
Igor Kozlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СПАСИБО Мужики!

Я вот еще нагуглил:

SELECT a.* FROM a
LEFT OUTER JOIN b ON a.id = b.id
WHERE (id IS NULL)

Красиво, правда!?
...
Рейтинг: 0 / 0
"Исключающее ИЛИ" в запросе
    #33913783
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Kozlovвсе записи из таблицы A кроме тех, id которых имеется в таблице Bselect from A except select from B

PS: только это вычитание, а не исключающее ИЛИ
...
Рейтинг: 0 / 0
"Исключающее ИЛИ" в запросе
    #33913861
Igor Kozlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отдельное спасибо LeXa NalBat!

Так еще проще.

А я действительно стормозил с логикой :-\
аж стыдно
...
Рейтинг: 0 / 0
"Исключающее ИЛИ" в запросе
    #33913880
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor KozlovТак еще проще.Выглядит проще. :(

Но ваш запрос может оказаться намного быстрее. План запроса с except настораживает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
                                     QUERY PLAN
------------------------------------------------------------------------------------
 SetOp Except  (cost= 196 . 09 .. 207 . 69  rows= 232  width= 4 )
   ->  Sort  (cost= 196 . 09 .. 201 . 89  rows= 2320  width= 4 )
         Sort Key: id
         ->  Append  (cost= 0 . 00 .. 66 . 40  rows= 2320  width= 4 )
               ->  Subquery Scan "*SELECT* 1"  (cost= 0 . 00 .. 33 . 20  rows= 1160  width= 4 )
                     ->  Seq Scan on test  (cost= 0 . 00 .. 21 . 60  rows= 1160  width= 4 )
               ->  Subquery Scan "*SELECT* 2"  (cost= 0 . 00 .. 33 . 20  rows= 1160  width= 4 )
                     ->  Seq Scan on test  (cost= 0 . 00 .. 21 . 60  rows= 1160  width= 4 )

И еще при использовании except для получения других полей кроме id нужно делать дополнительный join.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / "Исключающее ИЛИ" в запросе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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