У меня есть таблица A, в которой есть JSON столбец f
со следующим содержимым:
[{"name": "abc", "id": "1"}, {"name": "abcd", "id": "2"}, {"name": "abcde", "id": "3"} ]
Я хотел бы присоединиться к другой таблице B на id
внутри JSON объекта, описанного выше, но также взять свойство name
из JSON объекта.
Мне удалось создать следующий запрос:
WITH sample_data_array(arr) AS (
SELECT f FROM A
), sample_data_elements(elem) AS (
SELECT json_array_elements(arr) FROM sample_data_array
)
SELECT CAST(elem->>'id' AS int) AS id, elem->'name' AS name FROM sample_data_elements
, который возвращает следующий результат:
id, name
1, "abc"
2, "abcd"
3, "abcde"
Пример данных из Таблица B:
id, title, slug
1, "title 1", "title-1"
2, "title 2", "title-2"
3, "title 3", "title-3"
Как объединить этот результат с таблицей B и добавить дополнительные данные (столбцы) из указанной таблицы?
Ожидаемый результат:
id, name, title, slug
1, "abc", "title 1", "title-1"
2, "abcd", "title 2", "title-2"
3, "abcde", "title 3", "title-3"