討論區快速選單
知識庫快速選單
討論區最近新進100則主題 掌握Salesforce雲端管理秘訣 網路投保旅行平安險
[ 回上頁 ] [ 討論區發言規則 ]
請問可以用SQL語法抓table B的資料來更新table A的資?
更改我的閱讀文章字型大小
作者 : ashley(ashley)
[ 貼文 8 | 人氣 2152 | 評價 0 | 評價/貼文 0 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/21 下午 02:19:39
原本 table A 中只有 f1, f2 兩個欄位, f3 欄位是現在新增的,值都是 null
現在想直接用 SQL 語法去更新每一筆資料 f3 的值

table A:
f1 f2 f3
01 01 null
02 02 null
...
09 09 null

table B 是對應表
table A 的 f1+f2 等於 table B 的 f4
然後 f5 的值要寫進去 f3
 
table B:
f4  f5
0101 1
0202 2
...
0909 9

我這樣講不曉得大家看的懂嗎@@?

總之從 table A 的 f1 和 f2 可以找到 table B 中對應的 f5, 要把 f5 更新到 tableA 的 f3
這個問題可以直接用SQL語法做到嗎? 那語法要怎麼寫呢@@? 謝謝~
作者 : pou(pou)
[ 貼文 49 | 人氣 1699 | 評價 160 | 評價/貼文 3.27 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/21 下午 02:34:19
其實我個人覺得不一定要把f5的值,再多做存到f3的欄位。你可以把SQL語句改成如下:

Select a.f1, a.f2, b.f5
From TableA a, TableB b
Where b.f4=(a.f1+a.f2)

其結果為:

f1 f2 f5
01 01 1
02 02 2
03 03 3
 . . .
 . . .
09 09 9

個人意見,參考一下吧。
作者 : ashley(ashley)
[ 貼文 8 | 人氣 2152 | 評價 0 | 評價/貼文 0 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/21 下午 03:02:44

>其實我個人覺得不一定要把f5的值,再多做存到f3的欄位。你可以把SQL語句改成如下:
>
>Select a.f1, a.f2, b.f5
>From TableA a, TableB b
>Where b.f4=(a.f1+a.f2)
>
>其結果為:
>
>f1 f2 f5
>01 01 1
>02 02 2
>03 03 3
> . . .
> . . .
>09 09 9
>
>個人意見,參考一下吧。

之所以要多弄一個f3是因為我不是光要抓 f5 的值而已
之後還有其他的動作更複雜
所以直接從 table A 的 f3 抓比較方便
如果還要跟 table B join 的話 有些地方會做不出來~ QQ
作者 : ashley(ashley)
[ 貼文 8 | 人氣 2152 | 評價 0 | 評價/貼文 0 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/21 下午 03:11:00
我本來的想法是:
Update A left join B
On A.f1+A.f2 = B.f4
Set A.f3 = B.f5

不過這樣寫會有錯誤...不能跑= =
不知道SQL有這種語法嗎= =?
拜託大家幫忙囉~
作者 : ashley(ashley)
[ 貼文 8 | 人氣 2152 | 評價 0 | 評價/貼文 0 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/21 下午 04:36:33
我現在是用SQL Query Analyzer這樣寫~可是執行後沒反應ㄟ~
明明有三百筆資料~它說影響0個資料列~"~ 然後資料也沒更新到@@

UPDATE A SET A.f3 = NewB.f5
FROM A, (SELECT * FROM B) AS NewB
WHERE A.f1 + A.f2 = NewB.f4
作者 : ellychen(EllyChen)
[ 貼文 57 | 人氣 1571 | 評價 310 | 評價/貼文 5.44 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人ashley註記此篇回應為最佳解答 2006/9/21 下午 04:59:12
UPDATE TABLEA SET TABLEA.F3 = TABLEB.F5
FROM TABLEA LEFT JOIN TABLEB
ON (TABLEA.F1 + TABLEA.F2) = TABLEB.F4

試看看吧
作者 : ashley(ashley)
[ 貼文 8 | 人氣 2152 | 評價 0 | 評價/貼文 0 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/9/21 下午 05:12:12

>UPDATE TABLEA SET TABLEA.F3 = TABLEB.F5
>FROM TABLEA LEFT JOIN TABLEB
>ON (TABLEA.F1 + TABLEA.F2) = TABLEB.F4
>
>試看看吧

可以了耶..感謝大大..原來是要這樣寫..^^
 板主 : AXNET
 > SQL Language - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - SQL Language - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
SQL Language
1 ㄉ一ˊㄎㄜˋ 1330 
2 路人 1270 
3 坤哥 700 
4 吳馨琳 460 
5 凡人 440 
6 老骨頭 390 
7 pome5 380 
8 BK. 330 
9 Tony 310 
10 HKLN.net 250 
SQL Language
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.046875