在使用union时如何组合具有不同列数的select语句?

2hh7jdfx  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(640)

我需要在mysql中组合两个列数不同的表。。。。有什么窍门吗?

idv4meu8

idv4meu81#

正如@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 table。
像这样。

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

注:
如果你 UNION ALL 需要确保列具有相同的类型,如上面的示例所示 A.col1 以及 B.col1 类型应该相同。
如果 A.col1 以及 B.col1 没有可以使用的相同类型 CAST 函数使它们成为同一类型。

相关问题