如何解决PostgreSQL 中为选择所有链接表数据编写 SQL 查询的简单方法
当表链接在一起时,我想返回通过外键链接在一起的所有表的数据。是否有一个简单的 sql 命令?
样本数据:入口有 floor_id fk 到楼层表,楼层表有 building_id fk 到建筑物,建筑物有 company_id fk 到公司。
仅凭入口 id 是否可以获取上述所有数据?
SELECT * FROM floor_entrance
LEFT JOIN floor ON floor.id = (SELECT floor_id FROM floor_entrance WHERE id = {floor_entrance_id})
LEFT JOIN building ON building.id = (SELECT building_id FROM floor WHERE id =
(SELECT floor_id FROM floor_entrance WHERE id = {floor_entrance_id}))
LEFT JOIN company ON company.id = (SELECT company_id FROM building WHERE id =
(SELECT building_id FROM floor WHERE id =
(SELECT floor_id FROM floor_entrance WHERE id = {floor_entrance_id})))
WHERE floor_entrance.id = {floor_entrance_id}
我正在寻找一种简洁的方式来编写这个 postgresql 命令。
预期结果:“在整个架构中的所有外键上都加入左键”?
解决方法
我就这么干
SELECT * FROM floor_entrance A
LEFT JOIN floor B ON A.floor_id = B.id
LEFT JOIN building C ON B.building_id = C.id
LEFT JOIN company D ON C.company_id = D.id
WHERE A.id = {floor_entrance_id}
,
似乎没有一种简单的方法可以做到这一点。然而,@Alexis.Rolland 的答案是一种巧妙的方法,即使您必须手动加入每个表。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。