mySQL查看两个不同的表?

时间:2010-11-22 09:00:44

标签: mysql view

我在mySQL中创建视图存在很大问题:

数据库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

如果BEFORE DELETE,表A中的条目将通过触发自动转移到表B.

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

2 个答案:

答案 0 :(得分:1)

您可以使用UNION

SELECT * FROM a UNION SELECT * FROM b;

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

答案 1 :(得分:1)

SELECT id, account, filename, filesize FROM a UNION ALL SELECT id, account, filename, filesize FROM b

当然我一定错过了什么?