如何使用不相关的表在 MySQL 中创建视图
How to create a view in MySQL with unrelated tables
我在 MySQL 中有 4 个不同的 table,没有匹配条件和外键,为了某些特殊需要和更好的性能,我需要将所有这些数据重新组合在一个 MySQL 查看。
那些table的结构很相似,像这样(但记住即使是相同的字段也没有连接):
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 列的视图,将前 table 的数据分组?我不能使用连接,因为就像我之前说的,这些数据之间没有联系,这就是为什么我要考虑视图。我什至无法创建一个包含所有这些字段的 table,因为这对我的应用程序的其余部分来说是有意义的。
我需要像这样创建 4 个字段:日期、名称、价格、描述。
例如 price 将包含每个 table1..to table4.
的价格
如果允许此元组 <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 中有 4 个不同的 table,没有匹配条件和外键,为了某些特殊需要和更好的性能,我需要将所有这些数据重新组合在一个 MySQL 查看。
那些table的结构很相似,像这样(但记住即使是相同的字段也没有连接):
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 列的视图,将前 table 的数据分组?我不能使用连接,因为就像我之前说的,这些数据之间没有联系,这就是为什么我要考虑视图。我什至无法创建一个包含所有这些字段的 table,因为这对我的应用程序的其余部分来说是有意义的。
我需要像这样创建 4 个字段:日期、名称、价格、描述。 例如 price 将包含每个 table1..to table4.
的价格如果允许此元组 <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