MySQL将两列与三列组合在一起

时间:2013-08-02 08:16:21

标签: mysql

我想在一个表中组合两个table2。

我曾尝试在MySQL中使用union,但它没有成功。

我的编码:

Select  id,name;
union all
select id, name,sex;

示例数据:

TABLE_1

ID, Name
--------
1   JJ   
3   PP

表2

ID, Name, Sex
-------------
33  A     M
22  B     F

我需要的结果应该是:

ID, Name, Sex,
 1   JJ   
 3   PP
33    A     M
22    B     F

我们可以在mysql存储过程中这样做吗?

2 个答案:

答案 0 :(得分:0)

UNION [ALL]组合的两个结果集的列数及其类型应相同。这就是说试试

SELECT  id, name, NULL sex
  FROM Table1
 UNION ALL
SELECT id, name, sex
  FROM Table2

输出:

| ID | NAME |    SEX |
----------------------
|  1 |   JJ | (null) |
|  3 |   PP | (null) |
| 33 |    A |      M |
| 22 |    B |      F |

这是 SQLFiddle 演示

进一步阅读

  

我们可以在mysql存储过程中执行此操作吗?

是的,如果必须,你可以。

答案 1 :(得分:0)

在sql语句中使用'UNION'运算符时,两个组合表(结果集)必须具有相同的列数和类型。否则语句将失败,因为服务器无法决定如何组合这两个表。 因此,您需要人工为frist表创建第三列,以便其列集与第二个表中的列相匹配:

SELECT  id,name,'' AS sex FROM Table_1 UNION SELECT id, name, sex FROM Table_2