【发布时间】:2017-11-06 12:25:21
【问题描述】:
所以我有两个具有相同列的表,并且里面有相同类型的值。 让我们称它们为 table_1 和 table_2。问题是我想将它们合并到一个名为 table_3 的表中。
我遇到的问题是 table_1 和 table_2 中的一些值是相同的,当这种情况发生时我需要更改一些值。
table_1 是这样的
表_1
id、record_id、stuff_to_change、something_else
table_2 是这样的
表 2
id、record_id、stuff_to_change、something_else
这就是 table_3 的样子
表 3
id、record_id、stuff_to_change、something_else
现在的问题是,我需要比较 table_1 和 table_2 中的 record_id,如果它们不同,只需将其复制到 table_3,如果不同,我需要更改 table_3 中的 stuff_to_change。它需要有不同的价值。
所以在伪代码中应该是这样的:
for(i=0;i<end_of_table;i++)
{
for(j=0;j<end_of_second_table;j++)
{
if(record_id[i]==record_if[j]
{
record_id[i].stuff_to_change='SOMETHING';
mysqli_query($conn, "INSERT INTO table_3 (record_id, stuff_to_change, something_else) VALUES (record_id[i],stuff_to_change[i],something_else[i]");
}else{
mysqli_query($conn, "INSERT INTO table_3 (record_id, stuff_to_change, something_else) VALUES (record_id[i],stuff_to_change[i],something_else[i]");
}
}
}
这个伪代码不完整,我不知道该怎么做。所以将两张表合二为一,但如果record_id中的值相同,则更改stuff_to_change,如果record_id是唯一的,则只需将其复制到table_3。还需要注意的是,如果 2 个表中有相同的 record_id,我不需要它们两个,只需要 1 个,但具有不同的 stuff_to_change 值。
我将非常感谢您的帮助,我尝试了 union,并将其解析为 php 中的值,但对我没有任何作用
【问题讨论】:
-
添加“类型”列并仅指定 1、2 或 3 似乎更有效? (或者,多个值甚至组合在一起,并对必须唯一的内容添加唯一约束)您是否有特定理由为相同的数据结构使用单独的表?使用一个表或中间链接表似乎更容易和更快
-
感谢重播,但是是的,table_1 和 table_2 来自不同的来源......这就是为什么我需要将它们结合起来