两个不同表的 mySQL View ?

标签 mysql view

我在 mySQL 中创建 View 时遇到了一个大问题:

数据库 DB1 中的表 A:

CREATE TABLE `a` (
    `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'internal ID',
    `account` VARCHAR(10) NOT NULL DEFAULT '0',
    `filename` VARCHAR(50) NOT NULL,
    `filesize` BIGINT(15) NOT NULL DEFAULT '0'
    PRIMARY KEY (`id`)
)
ENGINE=InnoDB

数据库 DB2 中的表 B:

CREATE TABLE `b` (
        `archive_id` INT(10) UNSIGNED NULL AUTO_INCREMENT,
        `archive_datetime` DATETIME,
    `id` INT(10) UNSIGNED NOT NULL,
    `account` VARCHAR(10) NOT NULL DEFAULT '0',
    `filename` VARCHAR(50) NOT NULL,
    `filesize` BIGINT(15) NOT NULL DEFAULT '0'
    PRIMARY KEY (`archive_id`)
)
ENGINE=Archive

如果在 DELETE 之前,表 A 中的条目会通过触发器自动传输到表 B。

我需要一个 View ,为我提供表 a 和表 b 中的所有条目,就好像它们仍在同一数据库的一个表中一样。 View 中可以忽略 archive_idarchive_datetime 列,因为此方案不需要它们。

最佳答案

您可以使用UNION:

SELECT * FROM a UNION SELECT * FROM b;

您只需将 * 替换为所需的表格列即可。

关于两个不同表的 mySQL View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4243770/

相关文章:

mysql - Sequel Pro - 如何阅读 Ö、ü、ç、ñ、ß 等字符

sql - SQL : Delete rows from VIEW

c# - 如何停止 nHibernate 以保存 View ?

mysql - 如何在wordpress数据库中插入查询

sql - 你将如何执行此 SQL 查询?

php - utf8 vs. utf-8 vs. UTF8 vs. UTF-8 有什么区别吗?

mysql更新。计数,其中列为空并且列相同的行

java - 有没有办法观察 Arraylist 的大小,因为它通过数据绑定(bind)发生变化?

android - 如何在 View 上添加图层?

javascript - AngularJS - 在子状态中加载命名 View (非抽象)