Tabel1 и Таблица 2

select p.id,q.description
from table1 p 
join table2 q 
on q.control_number 
in unnest(p.results.control_number)

Когда я обрабатываю это, я получаю следующую ошибку:

Не удается получить доступ к полевым элементу Control_Number на значении с массивом типа >

Я также пробовал разложить после таблицы, например:

select p.id,q.f.description 
from table1 p,Unnest(finder) f 
join table2 q 
  on q.control_number in unnest(p.f.results.control_number)

Но и это не сработало.

Кто-нибудь может сказать мне, что случилось?

0
User23445554 18 Янв 2021 в 05:19

2 ответа

Лучший ответ

Другой вариант

select p.id,q.description
from table1 p, table2 q 
where q.control_number in (select control_number from p.finder)
0
Mikhail Berlyant 18 Янв 2021 в 17:53

Попробуйте сделать следующее в стандартном SQL:

with table1 as (
    select '1' id, array[struct('a1' as control_number)] finder
    UNION ALL 
    select '2' id, array[struct('a2' as control_number)] finder
    UNION ALL 
    select '3' id, array[struct('a3' as control_number)] finder     
),
table2 as (
    select 'description for a1' description, 'a1' control_number 
    UNION ALL
    select 'description for a2' description, 'a2' control_number 
)
select p.id,q.description 
from table1 p, unnest(p.finder) f join table2 q on q.control_number = f.control_number;

WITH Prose используется для моделирования данных в ваших таблицах.

0
Kyrylo Bulat 18 Янв 2021 в 07:48