sql - 父子SQL查询
问题描述
我有一个数据库,其中有从父类到多个子类的继承。
我已经用类表继承实现了继承。用一个联合表实现它会导致一个非常大的表,其中包含很多空值,这就是选择类表继承的原因。在继承中,每个父对象可能只是子对象之一,在示例中,这意味着每个人只能是学生、父母或教师。
我现在的问题是如何编写一个查询来获取有关一个人的所有信息,而不知道它是哪种类型的人,只知道 ssn。我知道我可以通过左连接所有子表和父表来做到这一点,但是有没有办法做到这一点,所以我不必做所有的左连接?实际上有更多的子表。
关于数据库的所有内容都是使用 SQLITE 编写的。
解决方案
一句话,没有。。
不过,您可以使用查询为您编写一些 SQL:
SELECT
'LEFT JOIN ' || m.name || ' ON ' || m.name || '.ssn = person.ssn'
FROM
sqlite_master AS m
JOIN
pragma_table_info(m.name) AS p
WHERE
p.name = 'ssn'
如果有 100 个带有 ssn 列的表,它将为您写入 100 个连接
推荐阅读
- wordpress - Wordpress 插件兼容性问题
- api - 是否有一个 API 可以为您提供近乎实时的股票投资组合持有量?
- python - 如何对一个类中的两个矩阵求和
- c# - 在 C# Unity 中无法弄清楚这个 NullReferenceException
- python - nan 出现在我的箱线图上,但没有标有 nan 的列?
- html - 在移动屏幕导航上移动 flexbox 项目
- node.js - 使用 NodeJS Express 为 API 仅输出 JSON 值
- python - Pandas DataFrames to Graph
- javascript - 我正在使用 vanilla js 向 django 发出 ajax 发布请求
- serialization - 使用serde反序列化yaml或json时如何解构枚举?