相当于 'includes' 的运算符
Operator equivalent to 'includes'
我正在尝试连接一堆表,我是 Postgres 和 Knex 的新手。
是否有与 javascript 运算符 'includes' 等价的运算符?例如我想做这样的事情:
JOIN tbl ON somearrayofIds 'includes' tbl.id
这是我的提取查询:
db('posts AS p')
.select(
'p.id as postId',
'p.user_id as pUserId',
'p.content',
'p.created_at',
'p.updated_at',
'p.image_url as postImage',
'pr.post_id as prPostId',
'pr.reaction_ids as prReactionIds',
'pr.user_ids as prUserIds',
'r.id as rId',
'r.keyword as rKeyword',
)
.leftJoin('post_reactions AS pr', 'pr.post_id', '=', 'p.id')
.leftJoin('reactions AS r', 'r.id', 'includes', 'pr.reaction_ids') // r.id is string, pr.reaction_ids is array
是这样的吗?:
create table array_test(id int, array_fld int[]);
insert into array_test values (1, '{1, 3, 5}');
select * from array_test where 1 = ANY(array_fld);
id | array_fld
----+-----------
1 | {1,3,5}
select * from array_test where 2 = ANY(array_fld);
id | array_fld
----+-----------
(0 rows)
我正在尝试连接一堆表,我是 Postgres 和 Knex 的新手。
是否有与 javascript 运算符 'includes' 等价的运算符?例如我想做这样的事情:
JOIN tbl ON somearrayofIds 'includes' tbl.id
这是我的提取查询:
db('posts AS p')
.select(
'p.id as postId',
'p.user_id as pUserId',
'p.content',
'p.created_at',
'p.updated_at',
'p.image_url as postImage',
'pr.post_id as prPostId',
'pr.reaction_ids as prReactionIds',
'pr.user_ids as prUserIds',
'r.id as rId',
'r.keyword as rKeyword',
)
.leftJoin('post_reactions AS pr', 'pr.post_id', '=', 'p.id')
.leftJoin('reactions AS r', 'r.id', 'includes', 'pr.reaction_ids') // r.id is string, pr.reaction_ids is array
是这样的吗?:
create table array_test(id int, array_fld int[]);
insert into array_test values (1, '{1, 3, 5}');
select * from array_test where 1 = ANY(array_fld);
id | array_fld
----+-----------
1 | {1,3,5}
select * from array_test where 2 = ANY(array_fld);
id | array_fld
----+-----------
(0 rows)