Как правильно сформировать запрос, который выводит из таблицы №2 то, чего нет в таблице №1?

Товарищи, что-то я совсем не могу сообразить, как создать такой запрос, помогите, пожалуйста.

есть две таблицы. в каждой из них есть одинаковые столбцы с данными value1 и value2:

таблица 1
-- id -- | --- value1 - | --- value2 -
-- 23 -- | ------- 14 - | ------- 28 -
-- 28 -- | ------- 54 - | ------- 77 -


таблица 2
-- id -- | --- value1 - | --- value2 -
-- 10 -- | ------- 14 - | ------- 28 -
-- 44 -- | ------- 54 - | ------- 77 -
-- 56 -- | ------- 22 - | ------- 29 -
-- 89 -- | ------- 91 - | ------- 16 -


Какой запрос выведет из таблицы 2-а только те строки, которые не содержат оба значения строки из таблицы 1
То есть должно вывестись:

таблица 3
-- id -- | --- value1 - | --- value2 -
-- 56 -- | ------- 22 - | ------- 29 -
-- 89 -- | ------- 91 - | ------- 16 -
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
scoffs
@scoffs
Frontend | C# | Student
Не?
SELECT *
FROM таблица2
WHERE NOT EXISTS (
  SELECT *
  FROM таблица1
  WHERE таблица2.value1 = таблица1.value1 AND таблица2.value2 = таблица1.value2
);


SELECT таблица2.*
FROM таблица2
LEFT JOIN таблица1 ON таблица2.value1 = таблица1.value1 AND таблица2.value2 = таблица1.value2
WHERE таблица1.value1 IS NULL AND таблица1.value2 IS NULL;

SELECT *
FROM таблица2
WHERE (value1, value2) NOT IN (
  SELECT value1, value2
  FROM таблица1
);

SELECT DISTINCT t2.*
FROM (
  SELECT CONCAT(value1, '-', value2) AS combined_values
  FROM таблица2
) AS t2
LEFT JOIN (
  SELECT CONCAT(value1, '-', value2) AS combined_values
  FROM таблица1
) AS t1
ON t2.combined_values = t1.combined_values
WHERE t1.combined_values IS NULL;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AmanitaRubescens
@AmanitaRubescens
Шалтай-болтай
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы