我有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个表格的结构。
答案 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