首页 > 代码库 > mysql整合有关联的两个数据表里的字段
mysql整合有关联的两个数据表里的字段
在整合两个数据表时,要把B表的一个字段整合到A表中来,B表有A表的主键的外键。
有两种方法(目标表TableA,来源表TableB):
1、通过程序(通过php实现),分两步实现
a.查询目标表里所有的id号,放到一个数组里$arrid
b.遍历$arrid,根据id号,从备份表里取出对应id的记录,取目标字段值$column,赋值给目标表的对应字段
ps:若数据量太大,有可能会出现运行超时,这是也可以通过更改php的最大执行时间才解决。
php文件:copdb.php
1 <?php 2 require "conntodb.php"; 3 4 function copdb($sql){ 5 $result = mysql_query($sql); 6 if ($result) { 7 return $result; 8 }else{ 9 return "error";10 }11 }12 ?>
php文件:dbModel.php
1 <?php 2 require "copdb.php"; 3 4 function select(){ 5 $sql = "select * from TableA"; 6 $result = copdb($sql); 7 return $result; 8 } 9 10 function update($id){11 $result = find($id);12 $field1 = "null";13 while ($row = mysql_fetch_array($result)) {14 $field1 = $row[‘field1‘];15 }16 $sql = "update TableA set field1 =‘".$field1 ."‘ where id=‘".$id."‘";17 $result = copdb($sql);18 }19 20 function find($id){21 $sql = "select * from TableB where ta_id=".$id;22 $result = copdb($sql);23 return $result;24 }25 ?>
php文件:select.php
1 <?php 2 /* 3 查询主表里所有的id号,放到一个数组里$arrid 4 遍历$arrid,根据id号,从副表里取出对应的字段值$column 5 根据id号,把$column插入到主表对应的列里 6 ---------------------------------------------------- 7 8 */ 9 require "dbModel.php";10 //查询目标表里的所有id号11 function selectallid(){12 $result = select();13 $arr = array();14 while ($row = mysql_fetch_array($result)) {15 $arr[] = $row["id"];16 }17 return $arr;18 }19 20 21 22 //遍历id数组,执行更新操作23 function bianliid(){24 $arr = selectallid();25 for ($i=0; $i < count($arr); $i++) { 26 update($arr[$i]);27 }28 }29 bianliid();30 31 ?>
2、通过sql语句:
UPDATE TableA AS ta,TableB AS tb SET ta.field1 = tb.field1 WHERE ta.id = tb.ta_id
mysql整合有关联的两个数据表里的字段
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。