如何解决postgres 中的反向关系
我的数据库“textDate”中有表格
class TextData extends BaseEntity{
id(primaryGeneratedColumn)
ar:string
en:string
}
这个实体用于存储我的项目中的所有文本,如标题、描述和其他具有外键的字段
class object extends baseEntity{
id
@OnetoOne()
@joinColumn()
title:TextData
...
由于某些条件,我需要在文本数据中搜索并从中获取记录,并且我想获取具有 Fk 到此 textData 记录的对象 注意:有几种类型的对象可以访问文本数据 object1(title),car(title),career(title) 他们都有fk到文本数据...... 有什么可做的吗? 我做的
select 'post' as Type,p3 .id
from post p3
where p3."tagsId" =any ('{1,2,3}') or p3."titleId" =any ('{1,3}')
join text_data td
on td.id =p3."titleId" as titil
UNION
select 'career' as Type,c2 .id
from career c2
join text_data td
on td.id =c2."titleId" as titil
where c2."tagsId" =any ('{1,3}')
解决方法
您可以在 text_data 中保存对子表的引用,例如子表的名称。
您的查询有一些错误:
select 'post' as Type,p3.id
from post p3
join text_data td on td.id = p3."titleId"
where p3."tagsId" = any('{1,2,3}') or p3."titleId" = any('{1,3}')
UNION
select 'career' as Type,c2.id
from career c2
join text_data td on td.id = c2."titleId"
where c2."tagsId" = any('{1,3}')
另一种查询方式:
SELECT td.id,coalesce(p3.type,c2.type) AS type
FROM text_data td
INNER JOIN (SELECT "titleId",'post' AS type FROM post WHERE "tagsId" = any('{1,3}') or "titleId" = any('{1,3}')) AS p3 ON td.id = p3."titleId"
INNER JOIN (SELECT "titleId",'career' AS type FROM career WHERE "tagsId" = any('{1,3}')) AS c2 ON td.id = c2."titleId"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。