Re: [SQL ] 關於資料更改部分語法

看板Database作者 (Daniel Guo)時間15年前 (2010/12/30 01:17), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《hotline1234 (唉唷我的天啊)》之銘言: : 各位好, : 我先行試著將問題描述清楚, : 再請各位給點意見或方向, : 謝謝。 : 我的問題如下: : TABLE A : a1 a2 score : ---------------------------------------- : AA BB 1 : BB CC 2 : AA CC 2 : BB AA 3 : CC BB 3 : 想利用SQL語法更新(或新增)資料表, : 內容是表A的對稱關係, : 例如 AA與BB=1,BB與AA為3, : 更新後無論AA BB或BB AA皆為4 先確保有反向的記錄 INSERT IGNORE INTO `tableA` (`a1`, `a2`, `score`) SELECT a.`a2`, a.`a1`, 0 FROM `tableA` a; 再用 UPDATE 配合 JOIN 取出 a1, a2 交換的值 UPDATE `tableA` a LEFT JOIN `tableA` aa ON a.`a1` = aa.`a2` AND a.`a2` = aa.`a1` SET a.`score` = a.`score` + aa.`score` 我會考慮再加一個 rev_score 欄位 (隨便取的) 並且 tableA 只存 a1 <= a2 的 row, 變成 TABLE A a1 a2 score rev_score ---------------------------------------- AA BB 1 3 BB CC 2 3 AA CC 2 null 這樣就很簡單了. 並且資料少, 更新更快. 不用 INSERT, UPDATE 時也不用 JOIN. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 71.84.58.153

12/30 12:15, , 1F
非常感謝您的建議與說明,對我幫助很大,謝謝!:D
12/30 12:15, 1F
文章代碼(AID): #1D6sqpN_ (Database)
文章代碼(AID): #1D6sqpN_ (Database)