2011-02-16 67 views
1

我有兩個表是這樣的: -如何更新行

表A

CODE   DESC 
----   ---- 
A001   BLACK 
12AA   SOFT 
B001   GREY 
13SW   ANTIQUE 
B011   BROWN 
23WQ   HARD 

表B

NO  MODEL   COLOR  FINISH 
--  -----   -----  ------ 
01  QWER   A001  12AA 
02  ASDF   B011  13SW 
03  ZXCV   B001  12AA 
04  POIU   A001  23WQ 

我想HV這樣使用SQL的輸出: -

NO  MODEL   COLOR  FINISH 
--  -----   -----  ------ 
01  QWER   BLACK  SOFT 
02  ASDF   BROWN  ANTIQUE 
03  ZXCV   GREY  SOFT 
04  POIU   BLACK  HARD 
+1

您正在使用什麼數據庫? – Chandu 2011-02-16 01:02:09

+0

這叫做SELECT不是UPDATE – Randy 2011-02-16 01:03:19

+1

哪個數據庫系統?來自JOIN的更新對於每個系統都是不同的。當然,除非你確實選擇了SELECT而不是UPDATE – RichardTheKiwi 2011-02-16 01:17:02

回答

2

研究SQL join S:

select b.no, b.model, a1.desc as 'color', a.desc as 'finish' 
from tableb b 
inner join tablea as a 
on b.finish = a.code 
inner join tabla as a1 
on b.color = a1.code 

這個查詢 '合併' 基於通用indentifier兩個表(在此code)。

2

您需要加入兩次針對table_a

select b.no, b.model, a1.desc, a2.desc 
    from table_b b 
inner join table_a a1 on (b.color = a1.code) 
inner join table_a a2 on (b.finish = a2.code) 
0

給你:)

SELECT TEMP1.NO,TEMP1.MODEL,TEMP1.COLOR,TEMP2.FINISH FROM 
(SELECT B.NO, B.MODEL, A.CODE,A.DESC AS COLOR FROM A,B WHERE A.CODE=B.COLOR)TEMP1, 
(SELECT B.NO, B.MODEL, A.CODE,A.DESC AS FINISH FROM A,B WHERE A.CODE=B.FINISH)TEMP2 
WHERE TEMP1.NO=TEMP2.NO