代码之家  ›  专栏  ›  技术社区  ›  glutorange

两个不同表的mySQL视图?

  •  0
  • glutorange  · 技术社区  · 14 年前

    我在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
    

    删除前,表A中的条目通过触发器自动传输到表B。

    我需要一个视图,该视图提供表a和表b中的所有条目,就像它们仍然在同一个数据库的一个表中一样。柱 archive_id archive_datetime 可以在视图中忽略,因为此方案不需要它们。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Flinsch    14 年前

    你可以用 UNION :

    SELECT * FROM a UNION SELECT * FROM b;
    

    * 以及所需的表列。

        2
  •  1
  •   Stefan Mai    14 年前
    SELECT id, account, filename, filesize FROM a UNION ALL SELECT id, account, filename, filesize FROM b
    

    我一定是丢了什么东西?