Итак, у меня есть одна таблица Profession
:
UUID UUID,
Name TEXT
Где UUID
- uuid1, uuid2, uuid3, etc.
Затем другая таблица Degrees
:
DegreeName TEXT,
Record JSON
Где запись Record->'Professions'
json может содержать список Profession.uuid
, например {"Professions":"[uuid1,uuid2]"}
, хотя поле может быть NULL
, например {"Professions":"[]"}
.
Вот как я пытаюсьсоедините две таблицы:
SELECT prof.uuid, prof.Name, d.DegreeName
FROM Profession prof
LEFT JOIN (
SELECT DegreeName, json_array_elements(Record->'Professions') prof_uuid
FROM Degrees
) d
ON d.prof_uuid::TEXT=prof.uuid::TEXT
Когда я делаю это, я получаю только Нули. Обратите внимание, что я приведу к TEXT
, потому что не могу привести массив Professions
к UUID
из-за пробелов.
Я попытался вручную найти таблицу Profession
, используя значение из списка Professions
, и она работает:
SELECT *
FROM Profession
WHERE uuid = 'someprofuuid'
Есть ли какой-то состав, который я пропустил?