簡體   English   中英

Mysql/PHP 合並兩張表

[英]Mysql/PHP Merge two tables

如何將兩張表合並為一張表?

例如,假設我有一個名為 person 的表,其中包含 first_name 和 last_name,gender,然后我有另一個名為 person_d 的表,它有 first_name、last_name、telephone 和 email。

新表應包含 first_name、last_name、telephone 和 email,gender

但我想以自動方式做到這一點,甚至不知道字段名稱是什么,只是通過使用條件

sql 是否可能,或者我必須使用 php 來做到這一點? 我認為我可以創建 php 腳本並將字段名稱放入兩個 arrays 然后比較雙精度並將它們添加到新數組並刪除它們之后我們將有 arrays 這是我的代碼

    <?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]);

        }

    }

}

之后,我並排創建包含 arrays 字段的新表

這是最好的方法還是有另一種方法可以做到這一點?

這里不需要 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;

這要求您將名字和姓氏的組合設為 UNIQUE

您當然可以更改列的名稱。 我想這是一個只能做一次的練習

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM