从另一个表名列表中选择表(SQL树合并)

时间:2017-04-14 05:37:50

标签: mysql

在我的SQL服务器中,我有一个“table_list”来记录必要的“sub_tables”,如下所示:

================
needed_sub_table
----------------
sub_table_1
sub_table_2             <= table_list_1
sub_table_3               
=================

================
needed_sub_table
----------------
sub_table_2
sub_table_6             <= table_list_2
sub_table_9               
=================

并且在sub_tables中,它们具有完全相同的列,具有不同的数据:

========================
ID  |  name |  parentID
------------------------
1   |  asv  |    0
2   |  asdf |    1             <= sub_table_1
3   |  ggre |    2
========================

========================
ID  |  name |  parentID
------------------------
4   |  uyer |    3
5   |  dfgh |    4             <= sub_table_2
6   |  dhgr |    5
========================

我要做的是:合并“table_list”中列出的“sub_tables”

我试过了:

SELECT * FROM (SELECT needed_sub_list FROM table_list)

但它不起作用。

我希望看到的是:

========================
ID  |  name |  parentID
------------------------
1   |  asv  |    0
2   |  asdf |    1             
3   |  ggre |    2
4   |  uyer |    3
5   |  dfgh |    4             <= result of table_list_1 
6   |  dhgr |    5                (and so for table_list_2....etc.)
========================

因为我的项目可能需要不同的sub_tables组合, 我必须将这些组合保存在其他表中。 这意味着我不能直接合并sub_tables,因为我只能根据table_lists知道需要什么sub_tables。 有人可以帮我这个吗? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

我认为只需使用基本的UNION查询即可获得所需内容:

SELECT ID, name, parentID
FROM sub_table_1
UNION ALL
SELECT ID, name, parentID
FROM sub_table_2
ORDER BY ID