2011-08-16 206 views
1

填補空我有一個表codes與領域id, code, issuedto, issuedtime這是預先裝有物品code但有NULL S IN issuedto, issuedtime多行。我有另一個表entrants其中有字段id, statusMySQL的更新表,從另一個表

我想爲winners的每一行設置codes.issuedto = winners.idstatus = 'won'

問題是我沒有任何東西可以加入表格 - 所以我最終得到了一個交叉連接,這不是我想要的。我真正想要的是內部連接 ​​- 但沒有任何連接。有人有主意嗎?

編輯:如果我是這樣做的SQL之外(這我可能會做什麼?)的僞代碼看起來是這樣的:在這裏

rows = query("SELECT id FROM winners WHERE status='won'"); 
foreach (rows as r) { 
    query("UPDATE codes SET issusedto=" + r.id + ", issued=NOW() WHERE issuedto IS NULL LIMIT 1"); 
} 

回答

0

OP。經過一番廣泛的搜索和實驗後,我得出結論,這不能用SQL來完成。我寫了一個簡短的腳本來爲我完成這項工作,類似於問題中列出的僞代碼。 ACID合規性是通過交易實現的(如果這很重要,請檢查您的DBMS的詳細信息)。