1

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

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

我的编码:

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

样本数据:

表格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 存储过程中做到这一点吗?

4

2 回答 2

0

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

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

输出:

| 身份证 | 姓名 | 性 |
----------------------
| 1 | JJ | (空) |
| 3 | 聚丙烯 | (空) |
| 33 | 一个 | 中号 |
| 22 | 乙| F |

这是SQLFiddle演示

进一步阅读

我们可以在 mysql 存储过程中做到这一点吗?

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

于 2013-08-02T08:20:47.353 回答
0

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

SELECT  id,name,'' AS sex FROM Table_1 UNION SELECT id, name, sex FROM Table_2
于 2013-08-02T08:24:36.730 回答