我知道我可以将表与sql查询结合起来,但这不是我想要的。
想象一下有10个表,都是相同的,但由于某些原因,我不想在1个表中将这些数据混合在一起。虽然!另一方面,要创建某些搜索结果,我希望能够执行单个sql查询:( select * from combined_table where name ='whatever')
我从这10张桌子中即时获取数据......
可能,是/否?
答案 0 :(得分:2)
您几乎肯定希望将此数据放入单个表格中。
假设您有十种不同类型的数据。添加一个名为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...