2个输出在一个表中选择

时间:2012-02-19 04:14:51

标签: sql select

我有2张这样的表:

[people1]:

|First Name*| Last Name*|
|           |           |
|Martin     | Green     |
|Peter      | Blue      |

[people2]:

|Name*      |
|           |
|Linda      |
|Jane Yellow|

我想要的SQL命令输出是什么:

|Name           |
|               |
|Martin Green   |
|Peter Blue     |
|Linda          |
|Jane Yellow    |

我无法改变2个表格的结构。

2 个答案:

答案 0 :(得分:2)

有助于了解数据库 - 字符串连接不一致。

对于SQL Server和MySQL:

SELECT p1.first_name +' '+ p1.last_name AS name
  FROM PEOPLE1 p1
UNION ALL
SELECT p2.name
  FROM PEOPLE2 p2

对于Oracle,PostgreSQL:

SELECT p1.first_name ||' '|| p1.last_name AS name
  FROM PEOPLE1 p1
UNION ALL
SELECT p2.name
  FROM PEOPLE2 p2

双管道现在是连接字符串的ANSI方法 - 如果启用了严格的ANSI,MySQL可能会支持它。

UNION运算符允许组合多个查询,并删除重复项。 UNION ALL不会删除重复项,并且速度更快。所有UNIONed查询中的列数必须相同,数据类型应在每个位置匹配。

答案 1 :(得分:1)

您可以使用union运算符。

SELECT concat(first_name,last_name) as name FROM table1
UNION
SELECT concat(first_name,last_name) FROM table2