0

我有表 A01、B01、C01 等等......都具有相同的结构。

+----+-----+
| ID | val |
+----+-----+
|  1 | a   |
|  2 | b   |
+----+-----+

+----+-----+
| id | val |
+----+-----+
|  1 | c   |
|  2 | d   |
+----+-----+

+----+-----+
| id | val |
+----+-----+
|  1 | e   |
|  2 | f   |
+----+-----+

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

同样,如果创建了新表,则不应更改查询。

我将在 PHP 网页上运行它。

4

3 回答 3

1

SQLFiddle

SELECT t1.val
  FROM table1 AS t1
UNION
  SELECT t2.val FROM table2 AS t2
UNION
  SELECT t3.val FROM table3 AS t3
于 2013-11-01T10:09:12.570 回答
1

使用所有需要的表创建一个带有union 或 union all子句的视图。如果您将来创建一个表,只需更改视图以包含该表。

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

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

SELECT VAL FROM MYVIEW
于 2013-11-01T10:31:54.570 回答
1

你不能在 mysql 中做新表。你必须定义它们。对于给定的表格,您可以这样做

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

演示

于 2013-11-01T10:22:37.883 回答