简体   繁体   English

从一个表导入数据并将其插入到另一个表

[英]import data from one table and insert it into another

I have two tables product_myob and products . 我有两个表product_myobproducts What I want to do is to import products from product_myob when the import button is clicked to table products . 我想要做的是进口产品 product_myob导入按钮被点击表products Table products already contains some products . products已经包含一些产品

I try to execute below query but the table is not updated. 我尝试执行以下查询,但表未更新。 Please help me with the code. 请帮助我的代码。

INSERT INTO products(myob_id, myob_displayID, Name)
  SELECT UID,displayID,itemName 
  FROM product_myob 
  WHERE UID NOT IN (SELECT myob_id from products);

This is a sample code that you can use. 这是您可以使用的示例代码。 Using MySQLi though because MySQL is deprecated already. 尽管使用MySQLi是因为MySQL已被弃用。

<?php

/* ESTABLISH CONNECTION AND CHANGE THE NECESSARY HOST, USERNAME, PASSWORD AND DATABASE */

$connection=mysqli_connect("YourHost","YourUsername","YourPassword","YourDatabase");

if(mysqli_connect_errno()){

echo "Error".mysqli_connect_error();
}

$result=mysqli_query($connection,"SELECT * FROM product_myob");
while($row=mysqli_fetch_array($result)){

$myobid=mysqli_real_escape_string($con,$row['UID']);
$myobdisplayid=mysqli_real_escape_string($con,$row['displayID']);
$name=mysqli_real_escape_string($con,$row['itemName']);

/* CHECK IF DATA IS ALREADY IN THE products TABLE */

   $result2=mysqli_query($connection,"SELECT * FROM products WHERE myob_id='$myobid' AND myob_displayID='$myobdisplayid' AND Name='$name'");

   if(mysqli_num_rows($result2)==0){

   mysqli_query($connection,"INSERT INTO products (myob_id, myob_displayID, Name) VALUES ('$myobid','$myobdisplayid','$name')");

   } /* END OF IF MYSQLI_NUM_ROWS($RESULT2) IS 0 */

   else {
   echo "Data has already been inserted before.<br>";
   }

} /* END OF WHILE LOOP RESULT */

?>

It seems there is a unique check on your products table and you are inserting some duplicate data if this is the case then you can ignore duplicate values by below query, even you don't need to check UID in product table as this query automatically ignore it. 看来您的产品表上有一个唯一的检查,如果是这种情况,您正在插入一些重复的数据,那么您可以通过以下查询忽略重复的值,即使您不需要在产品表中检查UID,因为此查询也会自动忽略它。 Other wise elaborate your question: 其他明智的阐述您的问题:

INSERT ignore INTO products(myob_id, myob_displayID, Name)
  (SELECT UID,displayID,itemName 
  FROM product_myob);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM