Mysql/PHP 合并两个表



如何将两个表合并为一个表?

例如,假设我有名为 person 的表,具有 first_name 和 last_name,性别,那么我有另一个名为 person_d 的表,它有first_name、last_name、电话和电子邮件。

新表格应包含first_name、last_name、电话和电子邮件,性别

但是我想以自动的方式做到这一点,甚至不知道字段名称是什么,只需使用条件

sql 可以做到这一点吗,或者我必须使用 php 来完成? 我以为我可以创建 php 脚本并将字段名称放入两个数组中,然后比较双精度并将它们添加到新数组并删除它们,然后我们将拥有没有双精度的数组 这是我的代码

<?php

$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "mydb";

//mysql and db connection
$db = new mysqli($servername, $username, $password, $dbname);
if ($db->connect_error) {  //error check
die("Connection failed: " . $con->connect_error);
} else {
}

$query1 = $db->query("SELECT * FROM     tablename1");
$query2 = $db->query("SELECT * FROM     tablename2");
$table1 = array();
$table2 = array();
$newtable = array();
while ($property = mysqli_fetch_field($query)) { //fetch table field name
array_push($table1,$property->name);
}
while ($property = mysqli_fetch_field($query)) { //fetch table field name
array_push($table2,$property->name);
}

foreach($table1 as $field1) { 
foreach($table2 as $field2) { 
if ($field1==$field2)
{
array_push($newtable,$field1);
unset($table1[$field1]);
unset($table1[$field2]);
}
}
}

之后,我用数组中的字段并排创建新表

这是最好的方法还是有另一种方法可以做到这一点?

这里不需要PHP。这只能在 SQL 中完成。

INSERT INTO new_table (first_name, last_name, telephone, email)
SELECT first_name, lastname, telephone, email
FROM person_d;

之后

INSERT INTO new_table (first_name, last_name)
SELECT first_name, lastname
FROM person
ON DUPLICATE KEY IGNORE;

这需要您使名字和姓氏的组合唯一

您当然可以更改列的名称。 我想这是一个只做一次的练习

最新更新