powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как вычесть из запроса те строки, которые есть в другой таблице?
10 сообщений из 10, страница 1 из 1
Как вычесть из запроса те строки, которые есть в другой таблице?
    #32057444
Nikolo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Проблема такая. Есть 2 таблицы с одинаковым набором полей. Мне нужно из 1-й таблицы выбрать все строки, кроме тех, которые есть во 2-й таблице . Что-то типа UNION ALL, только наоборот. В Oracle решал такую проблему просто, там есть операция MINUS, а как это сделать в MS SQL 2000 ?
Помогите, пожалуйста!
...
Рейтинг: 0 / 0
Как вычесть из запроса те строки, которые есть в другой таблице?
    #32057447
Nikolo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Проблема такая. Есть 2 таблицы с одинаковым набором полей. Мне нужно из 1-й таблицы выбрать все строки, кроме тех, которые есть во 2-й таблице . Что-то типа UNION ALL, только наоборот. В Oracle решал такую проблему просто, там есть операция MINUS, а как это сделать в MS SQL 2000?
Помогите, пожалуйста!
...
Рейтинг: 0 / 0
Как вычесть из запроса те строки, которые есть в другой таблице?
    #32057449
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А на основе какого поля(полей) нужно принимать решение о наличии/отсутствии одинаковых записей ?
Если только по первичному ключу, то так

SELECT a.*
FROM table1 a
LEFT OUTER JOIN table2 b ON b.id = a.id
WHERE b.id IS NULL
...
Рейтинг: 0 / 0
Как вычесть из запроса те строки, которые есть в другой таблице?
    #32057456
Фотография Shura_M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
здесь было
...
Рейтинг: 0 / 0
Как вычесть из запроса те строки, которые есть в другой таблице?
    #32057460
Nikolo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На основе всех полей.
Например, есть таблицы А и В с полями F1, F2, F3
Данные в А:
1 3 7
1 3 9
1 3 2
2 6 7
2 3 5

Данные в В:
2 4 8
1 3 2

Так вот, мне нужно выбрать все из А, но чтобы не было строки 1 3 2, т.к. она есть в таблице В.
...
Рейтинг: 0 / 0
Как вычесть из запроса те строки, которые есть в другой таблице?
    #32057464
Фотография Luchkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я такую фигню смог только так побороть:

Код: plaintext
1.
2.
select * from A 
where not cast(F1 as varchar)+'|'+cast(F2 as varchar)+'|'+cast(F3 as varchar) in (select cast(F1 as varchar)+'|'+cast(F2 as varchar)+'|'+cast(F3 as varchar) from B)


Жуткий изврат, но бОльшего мне придумать не дано. может гуру более красивое решение знают....
...
Рейтинг: 0 / 0
Как вычесть из запроса те строки, которые есть в другой таблице?
    #32057468
Nikolo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ответ в другом форуме подсказали, очень красиво на мой взляд и главное! - работает! :)

Код: plaintext
1.
2.
3.
select * from table1 t1
where not exists
 (select  1  from table2 t2
  where t2.col1 = t1.col1 and t2.col2 = t1.col2)
...
Рейтинг: 0 / 0
Как вычесть из запроса те строки, которые есть в другой таблице?
    #32057470
dkstranger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И почти то же самое
select * from table1 t1
where not col1 in in
(select col1 from table2 t2
where t2.col2 = t1.col2)
...
Рейтинг: 0 / 0
Как вычесть из запроса те строки, которые есть в другой таблице?
    #32057497
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По моему, только так
Код: plaintext
1.
select * from table1 t1
where not exists(select  1  from table2 t2 where t1.field1 = t2.field1 and t1.field2 = t2.field2)
...
Рейтинг: 0 / 0
Как вычесть из запроса те строки, которые есть в другой таблице?
    #32057504
Предводитель команчей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно еще так

select a.f1,b.f1
from a
left join b on a.f1 = b.f1
where b.f1 is null

f1 - ключевое поле в табл. a и b. Результат - все строки из b, кроме тех кот. есть в a.
Удачи.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как вычесть из запроса те строки, которые есть в другой таблице?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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