2015-10-24 167 views
0

我有兩個數據庫表,即讀數和檔案。 如何根據讀數表中prevRead列的記錄更新歸檔表中的jan列名稱。這裏是我的查詢:在更新查詢中選擇查詢

$sql_query = "SELECT prevRead FROM readings "; 
$result_set=mysql_query($sql_query); 
while($row=mysql_fetch_row($result_set)) 
{ 
    $sql = "UPDATE archive SET jan = '$row[0]'"; 
    mysql_query($sql); 
} 

例如我有prevRead列的讀數表中的500和200的記錄,然後我做了查詢。歸檔表的jan列中的輸出將爲200和200.如何使輸出500和200.

+0

你必須有一個外鍵例如:'reading_id'在你的「檔案」表中...你有嗎?這樣你可以將表格相互關聯。 – TipuZaynSultan

+0

沒有。如果可能的話,我希望不使用連接表的查詢 – mercury

+0

如果您在歸檔表中沒有外鍵,那麼您如何知道讀表中的哪個jan條目將鏡像到歸檔表的哪個條目? – TipuZaynSultan

回答

0

首先,在archive表中添加一個外鍵列/字段。例如:reading_id

這個reading_id將保持表readings表中主鍵的相同值。通過這種方式,您將知道readings的哪個條目涉及archive的哪個條目。

然後你只需要修改的代碼是這樣的: (我假設你readings表的主鍵是id

$sql_query = "SELECT id, prevRead FROM readings"; 
$result_set = mysql_query($sql_query); 
while($row = mysql_fetch_assoc($result_set)) 
{ 
    $sql = "UPDATE archive SET jan = '". $row['prevRead'] ."' WHERE reading_id = '". $row['id'] ."'"; 
    mysql_query($sql); 
} 
+0

感謝您的幫助。我想要的結果已經在您的代碼的幫助下輸出。 – mercury