Как объединить операторы SELECT с разным количеством столбцов при использовании объединения?

0

Мне нужно объединить две таблицы с различным количеством столбцов в mysql.... есть ли какие-нибудь трюки?

Теги:

1 ответ

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.col1 и B.col1 должны быть одинаковыми.
  • если у A.col1 и B.col1 нет одинаковых типов, вы можете использовать функцию CAST чтобы они были одного типа.
  • 0
    Просто добавьте, что при использовании Union и Union all основное отличие состоит в том, что Union all не будет удалять дублирующиеся строки, фактически он извлекает все строки из всех таблиц, соответствующих указанному запросу, и объединяет их в таблицу. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню