Допустим, у меня есть две таблицы схожей структуры, но одна пуста, а другая содержит несколько строк информации:
table1
col1 | col2 | col3
red | cow | 1
blue | dog | 2
gray | pig | 3
table2
col1 | col2 | col3 | col4
table3
col1 | col2
Попытка:
insert into `table2` select * from `table1`
не будет работать из-за несоответствующего числа столбцов, и то же самое верно, если подставить table3 для table2.
Изменение части * оператора SELECT не является опцией для динамических целей.Таким образом, обходной путь должен быть модифицированным SELECT, объединяющим информацию.
Есть ли оператор JOIN или что-то такое, что объединит структуры таблиц и данных так, чтобы это выглядело так:
select * from `table1`,`table2` (JOIN or some other statement)
col1 | col2 | col3 | col4
red | cow | 1 | NULL
blue | dog | 2 | NULL
gray | pig | 3 | NULL
select * from `table1`,`table3` (JOIN or some other statement)
col1 | col2
red | cow
blue | dog
gray | pig
В основном просто объединение любых столбцов с одинаковыми именами и аннулирование внешних совпадений.Опять же, он не может ссылаться на конкретные имена столбцов, чтобы сохранить динамичность.Это кажется выполнимым, но я не могу найти ответ.
Огромное спасибо всем, кто может помочь.