选择多个表的查询

时间:2013-11-01 10:05:08

标签: php mysql select join union

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

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

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

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

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

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

我将在PHP网页上运行它。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

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

demo

答案 2 :(得分:1)

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

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

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

SELECT VAL FROM MYVIEW