2012-08-16 59 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,但在此示例中它已經存在。

相關問題