0

我已经有了 branch_id(INT 类型)、client_name(VARCHAR 类型(30)。

我所知道的是,当我们使用 UNION 运算符时,列也必须具有相似的数据类型。问题是为什么我可以将它与具有不同数据类型的两列结合起来,如下面的代码,但仍然没有得到任何错误?(DBSM:MySQL,SQL 编辑器:PopSQL)

代码:

SELECT client_name
FROM client
UNION
SELECT branch_id
FROM branch_supplier;

结果:

client_name
--------------------
Dunmore Highschool
Lackawana Country
FedEx
John Daly Law, LLC
Scranton Whitepages
Times Newspaper
1
2
3
4

感谢您的关注

4

1 回答 1

0

MySQL 会在必要时自动转换数据类型。因此,您的查询被视为您已编写:

SELECT client_name
FROM client
UNION
SELECT CAST(branch_id AS CHAR)
FROM branch_supplier;
于 2020-08-07T01:08:04.210 回答