您的问题不是最好的,我会尽力提供帮助,但更好的问题会得到更好的答案。
我假设您需要将表格保留为 3 个单独的表格(我个人不会,我只需添加一个distributor
字段或类似的字段并将所有内容放在一个表格中)。
(从你的 PHP 标签来看,我会把它放在 php 中)。
我将提供一个相当具体的示例,但重要的是您要了解它是如何工作的,这样您才能适应它。
//Dist. A
$query = "SELECT * FROM `db`.`table_a` WHERE 1 ORDER BY `sku` DESC"; //Get the list of products
$result = mysql_query ($query) or die (mysql_error());
while ( $row = mysql_fetch_assoc($result)) {
if ( $row['stock'] != 0 ) { //If we have stock...
$query = "SELECT * FROM `final_table` WHERE `sku` LIKE '".$row['sku']."'"; //See if we have the data in the final table
$final_result = mysql_query ($query) or die (mysql_error());
if ( mysql_num_rows($final_result) == 0 ) { //Product Not in new table
$query = "INSERT INTO `final_table` VALUES ( '".$row['sku']."' [The rest of your values]";
mysql_query ($query) or die (mysql_error());
}
if ( mysql_num_rows($final_result) >= 1 ) { //Product In new table
$new_row = mysql_fetch_assoc($new_result); //Get the data into an array so we can compare the prices
if ( $row['price'] < $final_row['price'] ) { //New price is lower
$query = "UPDATE `final_table` SET `dist` = 'A', `price` = '".$row['price']."' [Other Vars that need update] WHERE `sku` LIKE '"$row['sku']"'";
mysql_query ($query) or die (mysql_error());
}
}
}
}
然后对 B 和 C 表重复此操作,更新表名和放入最终数据库的值。
(我意识到我可能在那个例子中违反了一些约定,但这个概念就在那里。)
这确实假设了一些事情,主要sku
是某种唯一索引。