UPDATE表,包含来自其他2个表的信息

时间:2012-04-13 10:04:59

标签: sql ms-access

我有3个表格,信息如下:

NOEUDS:

NOEUD   TYPE_MAT   NUM_COL
1        PBT         100
2        AMP         
3        REP    
4        PBP         120

COLINFO:

NUM_COL    INTEREXTER
100            1
120            2

PB:

NOEUD     FORFAIT
1           I
3            
4           E

我想在colinfo.num_col = 2中用E更新表PB.forfait。

我正在尝试这样的事情,但仍未能成功。 它是Microsoft Access数据库。

UPDATE pb

inner join (

SELECT noeud, type_mat, n.num_col, c.interexter
FROM noeuds AS n, colinfo AS c
WHERE ((NOEUDS.TYPE_MAT="PBT") Or (NOEUDS.TYPE_MAT="PBP")) 
  And (n.num_col=c.num_col)

) n on pb.noeud=n.noeud

SET (PB.FORFAIT = "E")

WHERE (n.INTEREXTER="2");

提前致谢。

2 个答案:

答案 0 :(得分:1)

试试这个

UPDATE 
(NOEUDS AS n INNER JOIN COLINFO AS ci ON n.NUM_COL = ci.NUM_COL) 
INNER JOIN PB ON n.NOEUD = PB.NOEUD 
SET PB.FORFAIT = "E"
WHERE (n.TYPE_MAT="PBP" Or n.TYPE_MAT="PBT") 
  AND ci.INTEREXTER=2

如果ci.INTEREXTER是字符串,请使用

AND ci.INTEREXTER = "2"

答案 1 :(得分:1)

怎么样:

UPDATE (PB 
INNER JOIN Noeuds ON PB.NOEUD = Noeuds.NOEUD) 
INNER JOIN ColInfo ON Noeuds.NUM_COL = ColInfo.NUM_COL 
SET PB.FORFAIT = "E"
WHERE (((ColInfo.INTEREXTER)=2));

我使用查询设计窗口构建了这个窗口,这是MS Access中一个非常有用的工具。