我有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");
提前致谢。
答案 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中一个非常有用的工具。