2012-10-25 34 views
-3
$save= mysql_query("update students set bid=(select bid from batches 
    where batches.start_date=students.start_date)"); 

我正在使用此... 請幫助我。如何在mysql中的兩個不同表中更新相同的批處理ID?

+1

我不理解什麼烏爾試圖做到這解釋烏爾內涵 「從批處理中選擇出價,其中batches.start_date = students.start_date」 可以返回n多個結果..... –

+0

是的..我想返回多個結果,實際上有4種類型的課程,即android,測試,.net,iPhone ....當我選擇這些選項中的任何一個創建新的學生註冊那麼必須將數據插入數據庫,所有字段都將插入,但這些出價顯示爲空。所以,批次ID應該與學生ID相同。這裏學生是一張桌子,批次是另一張桌子。我想加入這兩張表。請幫我 – yashu

+0

對於多個結果ü需要,而不是在使用中「其中batches.start_date = students.start_date」 ü需要使用 其中batches.start_date IN students.start_date –

回答

0

你可以用存儲過程來做到這一點 - 在事務中用update語句編寫存儲過程。或者寫下你這樣的查詢。

編輯:

UPDATE students s, anothertable a 
SET s.bid = (select bid from batches 
where batches.start_date=students.start_date),a.bid = (select bid from batches 
where batches.start_date=students.start_date) 

上面寫的更好的方式是

UPDATE students s, anothertable a, batches b 
SET s.bid = b.bid, a.bid = b.bid 
where b.start_date=s.start_date; 
+0

我試過,但出價顯示其不空插入數據庫。 – yashu

+0

您的批次表包含現場出價? –

+0

您是否在查詢中遇到任何錯誤? –

1

嘗試:

update students join batches 
on batches.start_date=students.start_date 
set students.bid=batches.bid 
相關問題