Mysql 从另一个表名列表中选择表(SQL树合并)
在我的SQL server中,我有一个表列表,其中记录了必要的子表,如下所示: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
================
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