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

Mysql 从另一个表名列表中选择表(SQL树合并),mysql,Mysql,在我的SQL server中,我有一个表列表,其中记录了必要的子表,如下所示: ================ needed_sub_table ---------------- sub_table_1 sub_table_2 <= table_list_1 sub_table_3 ================= ================ needed_sub_table ---------------- sub_tab

在我的SQL server中,我有一个表列表,其中记录了必要的子表,如下所示:

================
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               
=================
但它不起作用

我希望看到的是:

========================
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.)
========================
由于我的项目可能需要不同的子表组合, 我必须将这些组合保存在其他表中。 这意味着我不能直接合并子表,因为我只能根据表列表知道需要哪些子表。 有人能帮我吗?
提前感谢。

我认为您只需使用基本的联合查询即可获得所需的:


从表列表中选择所需的子列表返回多行。因此,在语句中,应该为子查询SELECT语句指定一行。可能会得到1242-子查询返回的行数超过1行。Error您得到的输出是查询的结果,不能用作主表。如果你想得到上面的结果,你应该先取出结果表并对它们进行并集运算。我不能直接使用并集。因为在我的项目中,所需的子表是动态的,并且所需子表的名称列在一个名为table_list的表中。这听起来像是糟糕的数据库设计,除非这是一个家庭作业问题,并且你被迫这样做。有什么建议吗?
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.)
========================
SELECT ID, name, parentID
FROM sub_table_1
UNION ALL
SELECT ID, name, parentID
FROM sub_table_2
ORDER BY ID