关系数据库在具有未知数量的中间表的两个表之间进行连接

时间:2014-07-05 21:46:59

标签: sql relational-database

我有一个大型数据库,我想为子表(或子表之间的连接)设置通用查询方法。但是,我感兴趣的表是父表的子表,该表是来自该父表的深度关系的未知数量的表,具体取决于我正在查询的表。

是否有一种方法可以让SQL自动加入两个感兴趣的表之间的所有临时表?或者只将查询缩小到父表的子集?

例如这组关系: Folder_Table-> System_Table-> Items_Table-> Items_Class-> Items_attributes-> Items_Methods-> Method_Data-> Method_History

我希望能够一般地执行任何子表的搜索或连接,其中结果仅针对Folder_table的单个文件夹,而不必对X表级别进行一系列显式连接。这会显着增加在运行时构建通用查询接口的复杂性。

1 个答案:

答案 0 :(得分:2)

不,没有。

你所要求的是着名的“弄清楚我想做什么,做什么”的功能,这将是编程语言或数据库的黄金灵丹妙药。

SQL是显式的。您需要通过显式列出要加入的表以及如何加入它来指定路径。

现在,你能为你的具体情况做出这样的功能吗?当然。您将在其中构建您的特定表结构的知识,或获取自动查找表A和表B之间的路径所需的信息的方式。但是,没有这样的内置函数已经存在,只是在等待供你使用所以,如果你想要这样一个功能,你将不得不自己编写它。

奖金问题:

  • 如果A和B之间有多条路径怎么办?