Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从内部联接创建mysql表_Php_Mysql_Inner Join - Fatal编程技术网

Php 从内部联接创建mysql表

Php 从内部联接创建mysql表,php,mysql,inner-join,Php,Mysql,Inner Join,我试图从其他两个表之间的内部联接创建一个mysql表。我正在处理一个有人创建的数据库,该数据库包含以下表格: sitemartrix\u站点 sitematrix\u数据库 它们由另一个名为sitemartrix\u sites\u databases的表(我不知道为什么不使用外键)关联,该表具有以下字段: 站点id和数据库id 这就是两个表之间的关系。现在我正试图消除这一点,让我的生活更轻松,因此我: mysql> CREATE TABLE result AS(select * fr

我试图从其他两个表之间的内部联接创建一个mysql表。我正在处理一个有人创建的数据库,该数据库包含以下表格:

  • sitemartrix\u站点
  • sitematrix\u数据库
它们由另一个名为
sitemartrix\u sites\u databases
的表(我不知道为什么不使用外键)关联,该表具有以下字段:
站点id
数据库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'
然而,我得到了那个错误。有人知道如何在不重复
数据库id
字段的情况下合并这两个表吗


谢谢

删除SELECT语句中的
*
,并在新表中实际列出所需的列。对于出现在两个原始表中的列,请同时命名该表(例如,
sitematrix\u databases.database\u id
)。

在SQL Server中,可以使用“选择到”。这可能是mySql的等效语法:

不幸的是,这是两个命令(而不仅仅是一个):


创建表格配方\u与production.recipes类似的新配方;插入配方\从production.recipes中选择新的*

不要使用
*
而是命名每一列并使用别名。例如,您可以使用
alternativeName
,而不是
sitematrix\u database.database\u id
。您还可以通过这种方式选择所需的列。

而不是使用
SELECT*…
尝试
SELECT database\u id…

MySQL不喜欢连接具有相同列名的表