Я пытаюсь объединить 2 таблицы с одинаковой схемой:
SELECT * FROM `tl1` INNER JOIN `tl2` ON tl1.urlid = tl2.urlid
Это работает нормально, пока я не решу изменить запрос, чтобы сохранить его:
CREATE TABLE `tableName` SELECT * FROM `tl1` INNER JOIN `tl2` ON tl1.urlid = tl2.urlid
Это выдает ошибку, говорящую о наличии дублирующих столбцов.
У меня есть первичный ключ в обеих таблицах.
Я нашел решение, наложив псевдонимы каждого столбца из каждой таблицы следующим образом:
CREATE TABLE `tableName` SELECT tl1.id AS L_id1, tl1.filepath AS L_filepath1, tl1.urlid AS L_urlid1, tl1.fieldname AS L_fieldname1, tl1.fieldvalue AS L_fieldvalue1, tl2.id AS L_id2, tl2.filepath AS L_filepath2, tl2.urlid AS L_urlid2, tl2.fieldname AS L_fieldname2, tl2.fieldvalue AS L_fieldvalue2 FROM `tl1` INNER JOIN `tl2` ON tl1.urlid = tl2.urlid
Однако это утомительно.Что если бы в каждой таблице было более 100 столбцов?Есть ли способ заставить это работать без необходимости наложения псевдонимов каждого столбца вручную?Я ищу что-то, что заставит MySQL создать таблицу с именами столбцов в формате «XY», где X - это исходное имя таблицы, а Y - это исходное имя поля, но любые другие решения также подойдут.
PS: Если неясно, когда я использовал «*», мне нужны были столбцы из обеих таблиц, а не только одна.Это две разные таблицы с разными данными, но с одинаковыми именами столбцов.(Кстати, я не могу изменить имена.)