2012-08-16 40 views
1

我想现在写一个PHP脚本,的MySQL找到一系列的表A记录,复制到B表

  1. 采用独特的主ID来搜索数据库中的特定记录。
  2. 然后,它应该寻找一个表匹配的第一个记录的某些字段的记录(例如,找到一个名字和日期的所有条目是一样的“记录一个”)
  3. 那么它应该复制的所有条目匹配到一个新的表格。

现在我有它只抓住一个匹配项,然后停止。我如何格式化它以复制所有条目?

$query = sprintf("SELECT name, date FROM original_table 
WHERE id='%s'", 
mysql_real_escape_string($id)); 
$result = mysql_query($query); 

$row=mysql_fetch_array($result); 


//find and copy all matching entries 
$query = sprintf("INSERT into second_table(all fields) 
SELECT all fields FROM original_table WHERE name='%s' AND date='%s'") 

对我能做些什么有什么建议?

+0

表A和表B是否有类似的字段? ? – kushalbhaktajoshi 2012-08-16 02:38:35

+0

是的,他们有相同的字段 – user1601687 2012-08-16 02:41:58

+0

你有我想下面的答案。 。 :) – kushalbhaktajoshi 2012-08-16 02:46:43

回答

1

在SQL中,查询你想要的是:

INSERT into second_table(all fields) 
    SELECT ot.all fields 
    FROM (select * 
      from original_table ot 
      where key = <thekey> 
     ) rec join 
     original_table ot 
     on rec.name = ot.name and 
      rec.date = ot.date 

你想排除原来的钥匙吗?如果是这样,请包括“和rec.key <> ot.key”。

1

您可以选择并使用单个查询插入,例如:

INSERT INTO new_table (name, date, etc) 
SELECT name, date, etc FROM old_table 
WHERE name='%s' AND date='%s' 

说明:

线路1:定义列要插入到新表
2号线:从旧表中选择数据
第3行:指定要使用WHERE或ON语句复制的内容

您可能也可以动态创建new_table,但在此示例中它已经存在。

相关问题