我知道我可以将表与 sql 查询相结合,但这不是我想要的。
假设有 10 个表,所有表都是相同的,但出于某些原因,我不想将这些数据混合在 1 个表中。尽管!另一方面,为了创建某些搜索结果,我希望能够执行单个 sql 查询:(select * from combined_table where name='whatever')
我在其中从所有这 10 个表中动态获取数据...
可能,是/否?
最佳答案
您几乎肯定希望将这些数据放入一个表中。
假设您有十种不同类型的数据。添加一个名为 type
的列(您应该选择一个更好的名称)并允许它具有 1 到 10 之间的值。现在您的查询无需更改即可运行。
如果您愿意,您仍然可以单独获取数据:
SELECT * from yourtable
WHERE name = 'whatever'
AND `type` = 3
我能想到的不这样做的唯一原因是,如果您有不同的用户具有不同的权限,并且您想使用表来控制哪些用户可以看到哪些数据。
如果尽管有这些好处,您仍然不想将数据放在一个表中,您可以使用 UNION ALL
来解决您的问题。
CREATE VIEW yourview AS
SELECT col1, col2, ..., coln FROM table1
UNION ALL
SELECT col1, col2, ..., coln FROM table2
UNION ALL
SELECT col1, col2, ..., coln FROM table3
UNION ALL
etc...
关于mysql - 包含来自组合表的数据的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11256749/