如何在 MySQL 中使用不相关的表创建视图
Posted
技术标签:
【中文标题】如何在 MySQL 中使用不相关的表创建视图【英文标题】:How to create a view in MySQL with unrelated tables 【发布时间】:2016-03-14 09:43:10 【问题描述】:我在 mysql 中有 4 个不同的表,没有匹配标准和外键,为了一些特殊需要和更好的性能,我需要在一个 MySQL VIEW 中重新组合所有这些数据。
这些表的结构是相似的,像这样(但记住即使是相同的字段也没有连接):
table1 (id, name, date, price, description)
table2 (id, type, date, price, note)
table3 (id, name, date, price, note)
table4 (id, name, date, price, description)
有没有一种方法可以创建一个包含 4 列的视图,将以前表的数据分组?我不能使用连接,因为就像我之前说的那样,这些数据之间没有联系,这就是我对视图的看法。我什至无法创建包含所有这些字段的单个表,因为这对我的应用程序的其余部分来说意味着。
我需要创建 4 个这样的字段:日期、名称、价格、描述。 例如 price 将包含每个 table1..to table4 的价格。
【问题讨论】:
重复元组怎么办?<name, date, price, description>
添加一些示例表数据,以及预期的结果。
【参考方案1】:
如果允许此元组<name, date, price, description>
重复,则可以使用UNION ALL
,如果您不想在视图中允许重复,则使用UNION
而不是UNION ALL
。
DROP VIEW IF EXISTS combinedTableView ;
CREATE VIEW combinedTableView AS
SELECT
`name`,
`date`,
price,
description
FROM table1
UNION ALL
SELECT
`name`,
`date`,
price,
description
FROM table2
UNION ALL
SELECT
`name`,
`date`,
price,
description
FROM table3
UNION ALL
SELECT
`name`,
`date`,
price,
description
FROM table4
【讨论】:
以上是关于如何在 MySQL 中使用不相关的表创建视图的主要内容,如果未能解决你的问题,请参考以下文章