如何在MySQL中创建具有不相关表的视图

Ame*_*cci 2 mysql sql view

我在 MySQL 中有 4 个不同的表,没有匹配条件和外键,为了某些特殊需求和更好的性能,我需要将所有这些数据重新组合到一个 MySQL 视图中。

这些表的结构类似,如下所示(但请记住,即使相同的字段也没有连接):

table1 (id, name, date, price, description)
table2 (id, type, date, price, note)
table3 (id, name, date, price, note)
table4 (id, name, date, price, description)
Run Code Online (Sandbox Code Playgroud)

有没有办法创建一个包含 4 列的视图,对先前表的数据进行分组?我无法使用联接,因为就像我之前所说的那样,这些数据之间没有联系,这就是我对视图持保留态度的原因。我什至无法创建包含所有这些字段的单个表,因为这对于我的应用程序的其余部分来说意味着。

我需要创建 4 个这样的字段:日期、名称、价格、描述。例如,价格将包含表 1.. 到表 4 中每个表的价格。

100*_*111 6

如果该元组<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
Run Code Online (Sandbox Code Playgroud)