使用联合时如何合并具有不同列数的SELECT语句?

时间:2018-06-30 05:26:36

标签: mysql sql

我需要在mysql中合并两个具有不同列数的表....有什么技巧吗?

1 个答案:

答案 0 :(得分:0)

正如@Joakim Danielson所说,您可以尝试使用UNION ALL结合两个查询。添加NULL,并减少列数。

CREATE TABLE A(
    col1 int,
    col2 varchar(100),
    col3 datetime
);

insert into a values (1,'test1','2017-01-01 01:00:00');

CREATE TABLE B(
    col1 int
);

insert into b values (3);

例如,A表中有三列,B表中有一列。

看起来像这样。

SELECT col1,col2,col3
FROM A
UNION ALL 
SELECT col1,null,null 
FROM B

注意:

  • 如果您UNION ALL需要确保列的类型相同,则上面的示例A.col1B.col1的类型应该相同。
  • 如果A.col1B.col1的类型不同,则可以使用CAST函数使它们相同。