Как выбрать значения из таблицы A, которых нет в таблице B? - PullRequest
0 голосов
/ 15 декабря 2018

У меня есть две таблицы в БД mySQL: A & B.

a, b, c столбцы.

Таблица A:

 a(1) = 1 
 a(2) = 2
 a(3) = 3

Таблица B:

 a(1) = 1 
 a(2) = 2

Итак, мы могли видеть, что в таблице B нет строки с a = 3. Как можноЯ прошу БД его найти?

Таким образом, ответ (одна строка) может выглядеть следующим образом:

a(1) = 3 
b(1) =..
c(1) =.. 

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Вы также можете отказаться от объединений и использовать WHERE и вложенный SELECT: предположим, что TabA содержит значения 1,2,3 в последующих строках столбца ValA, а TabB содержит значения 1,2 в последующих строках столбца ValB и требуется толькострока, содержащая значение 3 из TabA, вы можете сделать это без объединений:

SELECT  Val_A
FROM TabA  
WHERE Val_A NOT IN (SELECT Val_B FROM TabB)
0 голосов
/ 15 декабря 2018

В одном из вариантов используется EXISTS:

SELECT a.a
FROM TableA a
WHERE NOT EXISTS (SELECT 1 FROM TableB b WHERE b.a = a.a);

Другим вариантом будет анти-объединение:

SELECT a.a
FROM TableA a
LEFT JOIN TableB b
    ON a.a = b.a
WHERE b.a IS NULL;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...