Mysql

從 MySQL 中具有相同模式的多個表中選擇 UNION

  • August 16, 2017

我想SELECT(組合)來自具有相同架構的多個表的記錄。這是我使用的查詢:

SELECT visitor_name, in_time, out_time, blacklist FROM visitor_archive_2012 UNION 
SELECT visitor_name, in_time, out_time, blacklist FROM visitor_archive_2013 UNION 
SELECT visitor_name, in_time, out_time, blacklist FROM visitor_archive_2014 UNION 
SELECT visitor_name, in_time, out_time, blacklist FROM visitor_archive_2015 

我很確定有一種不那麼冗餘和冗長的方式來編寫這個查詢。每個表的架構完全相同。這是在 MySQL 5.6 中

是的,有一種不那麼冗餘/冗長的方式——PARTITION按年一張表。然後一個人SELECT就可以完成這項工作。

但是,這甚至可能不明智。將其拆分為多個表可以使哪些查詢受益?

正如@Rick 所說,我首先會質疑為什麼你需要有單獨的表,但假設這是你無法控制的,如果這是一個正常查詢,創建視圖可能是最簡單的。如果這些是 MyISAM 表,您也可以考慮使用 Merge 表。

引用自:https://dba.stackexchange.com/questions/142054