UPDATE 更新兩個資料表 |
答題得分者是:Fishman
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
請問各位! Interbase 的語法上(或其他資料庫亦可)有沒有如下的功能 mydata.gdb A table -> A,B,C,D,E fields (master table)
B table -> A,B,D,E,F fields (detail table) 我要把 A.A=B.A 的記錄中的
B.B, B.D, B.E 三個欄位分別以 A.B, A.D, A.E 的值代入, 有沒有可能用 UPDATE的語法來完成, 目前我似乎找到的資料 UDPATE 都只能針對一個TABLE進行, 當然以上用程式來做是可以完成, 我想要的是一句SQL語法, 謝謝!
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi P.D., In Oracle, you can use below command
UPDATE TABELB B SET (B.B,B.D,B.E) = (SELECT A.B,A.D,A.E FROM TABLEA A WHERE A.A = B.A) WHERE EXISTS (SELECT A.A FROM TABLEA A WHERE A.A = B.A) 或是 UPDATE TABELB B SET B.B = (SELECT A.B FROM TABLEA A WHERE A.A = B.A), B.D = (SELECT A.D FROM TABLEA A WHERE A.A = B.A), B.E = (SELECT A.E FROM TABLEA A WHERE A.A = B.A) WHERE EXISTS (SELECT A.A FROM TABLEA A WHERE A.A = B.A)至於其他的資料庫,請大大參考以下文章看看是否有解 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=66638 發表人 -
------
Fishman |
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
感謝兩位的資料, 我測試過
UPDATE TABELB B SET (B.B,B.D,B.E) = (SELECT A.B,A.D,A.E FROM TABLEA A WHERE A.A = B.A)
這種語法 IB 不接受 UPDATE TABELB B SET B.B = (SELECT A.B FROM TABLEA A WHERE A.A = B.A),
B.D = (SELECT A.D FROM TABLEA A WHERE A.A = B.A) 這樣就過了 至於 INNER, LEFT的用法, 在 IB上似乎無法搭配 UPDATE , 因為不管我如何下COMMAND 都發生錯誤 再次感激兩位!
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |