选择“查询多个表”


Select query for multiple tables

我有表 A01、B01、C01 等等...所有结构相同。

+----+-----+
| ID | val |
+----+-----+
|  1 | a   |
|  2 | b   |
+----+-----+
+----+-----+
| id | val |
+----+-----+
|  1 | c   |
|  2 | d   |
+----+-----+
+----+-----+
| id | val |
+----+-----+
|  1 | e   |
|  2 | f   |
+----+-----+

是否可以有一个查询来显示所有表中的"val"列?

此外,如果创建新表,则不应更改查询。

我将在PHP网页上运行它。

创建包含所有必需表的联合视图或联合所有子句。如果将来创建一个表,只需更改视图以包含该表即可。

CREATE VIEW AS MYVIEW
SELECT VAL FROM A01 UNION ALL
SELECT VAL FROM B01...

始终使用相同的查询来获取数据:

SELECT VAL FROM MYVIEW

你不能在MySQL中做新表。 您必须定义它们。 对于给定的表,您可以执行此操作

   select val from `A01`
   union all
   select val from `B01`
   union all
   select val from `C01`

演示

SQLFiddle

SELECT t1.val
  FROM table1 AS t1
UNION
  SELECT t2.val FROM table2 AS t2
UNION
  SELECT t3.val FROM table3 AS t3