mysql - 使用 union 时如何组合具有不同列数的 SELECT 语句?

标签 mysql sql

我需要在 mysql 中合并两个具有不同列数的表....有什么技巧可以做到这一点吗?

最佳答案

正如@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函数使它们是同一类型。

关于mysql - 使用 union 时如何组合具有不同列数的 SELECT 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51112001/

相关文章:

mysql - 多列范围

sql - 使用 REFERENCES 时,PostgreSQL 中可以省略 FOREIGN KEY 吗?

mysql - 创建搜索查询

mysql - 如何在连接多个表的MySQL中执行全文搜索

php - 如何计算行和列中的值的总和?

sql - Go 中数据库迁移的正确策略

sql - 为字段分组创建索引?

mysql - 为什么在我的查询中使用 LIMIT 时 MySQL 很慢?

java - 用于 mysql 5.6 的 mysql-connector-java

php - 在 PHP 中将数组转换为字符串