У меня есть две таблицы tbl1
(552 строки) и tbl2
(257 строк) с неравными строками в моей базе данных PostgreSQL (PG 9.5, x64 Windows). Таблицы tbl1 и tbl2 содержат следующие данные (образец показан здесь):
Grp id val1 val2 sum
1 1 112 142 5.2
1 2 124 137 6.7
1 3 136 189 6.8
1 4 112 114 9.8
1 5 130 145 6.1
1 6 142 130 7.7
Grp id sum
1 1 5.2
1 3 6.8
1 6 7.7
Для каждой группы в таблице 1 я пытаюсь выбрать строки, в которых «id» в первой таблице не равно « id "второй таблицы. Например, мой ожидаемый результат будет:
Grp id val1 val2 sum
1 2 124 137 6.7
1 4 112 114 9.8
1 5 130 145 6.1
Я пробовал этот запрос до сих пор, но он не работает, и возвращает пустой вывод.
SELECT
a.grp, a.id,
a.val1, a.val2, a.sum
FROM tbl1 a
WHERE NOT EXISTS (
SELECT *
FROM tbl2 b WHERE b.grp = a.grp AND b.id != a.id
)
Может кто-то помочь по это и объясните, что я делаю не так?