mysql - 包含来自组合表的数据的表

标签 mysql

我知道我可以将表与 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/

相关文章:

mysql - SQL 中的表操作

mysql - 在 MySQL Workbench 中设置默认排序规则方法不会更改排序规则方法

mysql - 如何使用 zeoslib 获取选择结果

php - 使用 drupal 优化和压缩 mysql 数据库

php - 尝试使用表单和 php 进行 INSERT INTO 查询,但数据库未更新记录

c# - 在 Visual Studio 中处理 MySQL 异常

mysql - 连接两个表并获取一个表的计数,但所有结果都与另一个表上的 ID 匹配

mysql - 使用 Hibernate @SQLDelete 跨所有实体进行软删除

PHP/MySQL - 使用两个数据库,一个是共享的,一个是应用程序实例本地的

php - 从 SQL 数据库添加网站内容