Почему SQL UNION может объединять два столбца с разными типами данных в MySQL? - PullRequest
0 голосов
/ 07 августа 2020

У меня уже есть branch_id (тип INT), client_name (тип VARCHAR (30).

Все, что я знаю, когда мы используем оператор UNION, столбцы также должны иметь похожие типы данных. Проблема в том, почему я можно объединить его с двумя столбцами, которые имеют разные типы данных, как в приведенном ниже коде, но по-прежнему не получают ошибок? (DBSM: MySQL, SQL редактор: Po pSQL)

Код:

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

Спасибо за внимание

1 Ответ

0 голосов
/ 07 августа 2020

MySQL автоматически преобразует типы данных при необходимости. Таким образом, ваш запрос обрабатывается так, как если бы вы написали:

SELECT client_name
FROM client
UNION
SELECT CAST(branch_id AS CHAR)
FROM branch_supplier;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...