1

我知道我可以将表与 sql 查询结合起来,但这不是我想要的。

想象一下有 10 个表,所有表都是相同的,但由于某些原因,我不想将这些数据混合在 1 个表中。尽管!另一方面,要创建某些搜索结果,我希望能够执行单个 sql 查询:(select * from combined_table where name='whatever')

我从所有这 10 个表中即时获取数据......

可能,是/否?

4

1 回答 1

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...
于 2012-06-29T06:00:26.867 回答