我知道我可以将表与sql查询组合在一起,但这不是我想要的。
假设有10个表,所有表都是相同的,但由于某些原因,我不想将这些数据混合在一个表中。不过!另一方面,为了创建特定的搜索结果,我希望能够执行单个combined_table查询:(select * from sql where name='whatever')
其中我从这10个表中动态获取数据...
有可能,是/不是?
发布于 2012-06-29 14:00:27
几乎可以肯定的是,您希望将此数据放入单个表中。
假设您有十种不同类型的数据。添加一个名为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...
https://stackoverflow.com/questions/11256749
复制相似问题