Я не уверен в том, какой выходной формат вы хотите, но при этом будет создаваться по одной строке на ключ с логическим значением, указывающим, содержатся ли значения массива ключа json_2 в значениях ключа json_1.
CREATE TABLE t (json_1 JSONB, json_2 JSONB);
INSERT INTO t
VALUES
('{"a":["123"],"b":["456","789","aaa"],"c":["999"],"d":[]}',
'{"a":["123"],"b":["789","456"],"c":["123"],"d":["x"]}');
Запрос # 1
SELECT key, value <@ (json_1->key) AS contained
FROM (
SELECT (JSONB_EACH(json_2)).*, json_1
FROM t
) j;
Возвращает:
| key | contained |
| --- | --------- |
| a | true |
| b | true |
| c | false |
| d | false |
Просмотр в БДFiddle