У меня есть две конкретные таблицы, с которыми я работаю. users
и tags
. Таблица users
имеет столбец tags
типа json
, который хранит ссылки на сопоставление идентификатора на таблицу tags
. Например:Postgres: Как запросить `where id in (some_other_col_json_array)`
users
.id // Int
.tags // JSON array. Eg [1, 5, 9, 22, 64]
tags
.id // Int
.tag_name // String
Я хочу получить все теги для данного идентификатора пользователя. Что-то любит следующий запрос псевдо Postgres:
select u.id,
u.first_name,
u.last_name,
array(select pt.tag_name from profile_tags pt where pt.id in (u.tags)) as p_tags
from users u
where u.id=$1
Очевидно, что это не работает, но я хотел бы некоторую помощь, чтобы это право.
Выполняйте нормализацию, и ваша проблема исчезнет. –
http://blog.2ndquadrant.com/postgresql-anti-patterns-unnecessary-jsonhstore-dynamic-columns/ –