2011-02-16 18 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