Php MySQL合并不同结构的表

Php MySQL合并不同结构的表,php,mysql,merge,merging-data,Php,Mysql,Merge,Merging Data,我有两个不同结构的数据库 表1: ch_code ch_def ch_weight 表2: address ch_code 我需要合并这两个表,因此结构如下所示: ch_code ch_def ch_weight address 两个表中的行数或行数不同。表1包含更多数据 我是否应该使用合并、联合。。还有别的吗 谢谢大家! 如果表2中只有表1中包含的数据,即表2中没有不在表1中的数据,那么您应该能够执行类似于假设表3已经设置好的操作: INSERT IN

我有两个不同结构的数据库

表1:

ch_code    ch_def    ch_weight
表2:

address    ch_code
我需要合并这两个表,因此结构如下所示:

ch_code    ch_def    ch_weight    address
两个表中的行数或行数不同。表1包含更多数据

我是否应该使用合并、联合。。还有别的吗


谢谢大家!

如果表2中只有表1中包含的数据,即表2中没有不在表1中的数据,那么您应该能够执行类似于假设表3已经设置好的操作:

INSERT INTO TABLE3 (ch_code, ch_def, ch_weight, address)
SELECT Table1.ch_code, Table1.ch_def, Table1.ch_weight, Table2.address
FROM Table1 LEFT JOIN Table2 on Table1.ch_code = Table2.ch_code
我手头没有MySQL安装,因此您的特定语法会有所不同


如果表2中的数据与表1中的数据不匹配,并且希望保留该数据,那么如果MySQL不支持,则需要完全连接,将左连接和右连接合并。

以下是一个解决方案,它应该处理三种可能的情况:

t1中有一个ch_代码值,而t2中没有 t2中有一个ch_代码值,而t1中没有 t1和t2中都有ch_代码值 选择t1.ch_代码、t1.ch_定义、t1.ch_权重,作为不存在的t1地址,从t2选择*其中t2.ch_代码=t1.ch_代码

联合

选择t2.ch_代码,作为ch_def,作为ch_权重,t2.address from t2(不存在)选择*from t1,其中t1.ch_代码=t2.ch_代码

联合

选择t1.ch_代码、t1.ch_定义、t1.ch_权重、t2.ch地址,从t1左连接t1.ch_代码=t2.ch_代码


获得结果集后,如果有一个新表用于容纳合并的数据,则可以执行插入操作。

好的,这取决于您希望在结果表上显示什么。。。如果您添加一些示例数据,可能会有所帮助。澄清一下,您的意思是,您在同一数据库中有两个表,并且正在寻找一个查询,该查询将导致您所指示的列?是否有与这些表相关的列?例如,表示两个表中相同行的person_id。是的,同一数据库中的两个表和Chu代码对于表1和表2是相同的。定义合并。你的意思是创造一个全新的,永久的桌子。或者只是将合并的数据检索到应用程序中以供临时使用?PS-有人知道获取包含下划线的多行代码块的秘诀吗?我不得不接受每一行的反勾号。