Я пытаюсь создать таблицу mysql из внутреннего соединения между двумя другими таблицами. Я имею дело с созданной базой данных, которая имеет следующие таблицы:
sitematrix_sites sitematrix_databases Они связаны другой таблицей (я не знаю, почему не использовать внешний ключ), называемой sitematrix_sites_databases которая имеет следующие поля: site_id и database_id .
Вот как связаны две таблицы. Теперь я пытаюсь удалить это, чтобы облегчить мне жизнь, поэтому у меня есть:
mysql> CREATE TABLE result AS(select * from sitematrix_databases INNER JOIN site matrix_site_databases ON sitematrix_site_databases.database_id = sitematrix_data bases.database_id); ERROR 1060 (42S21): Duplicate column name 'database_id'
Однако я получаю эту ошибку. Кто-нибудь знает, как я могу объединить две таблицы без повторения поля database_id ?
благодаря
Удалите * в инструкции SELECT и фактически перечислите нужные столбцы в своей новой таблице. Для столбцов, которые отображаются в обеих исходных таблицах, также назовите эту таблицу (например, sitematrix_databases.database_id ).
Не используйте * вместо имени каждого столбца и используйте псевдонимы. Например, вместо sitematrix_database.database_id вы можете иметь alternativeName . Также вы можете выбрать, какие столбцы вы хотите и в этом направлении.
В SQL Server вы можете использовать «select into». Это может быть эквивалентный синтаксис для mySql:
К сожалению, это две команды (не только одна):
CREATE TABLE recipes_new LIKE production.recipes; INSERT recipes_new SELECT * FROM production.recipes;
Вместо использования SELECT * ... попробуйте SELECT database_id ...
MySQL не любит объединение таблиц с одинаковым именем столбца.