我有一个表CLIENT
CLIENT_ID NAME CP VILLE
1 razer 49004 St hallo
2 mayui 49005 Kubol
和另一张表AGENCE
CLIENT_ID AGENCE_ID ADDR CP VILLE
1 1 qsdf null null
2 2 qsdf null null
1 9 dqsf 5454 5254
1 5 fff 4587 6568
如何填写表格AGENCE的CP和VILLE?
当然我可以删除/截断AGENCE并使用SELECT INSERT。但我不能这样做。
答案 0 :(得分:2)
所以,你问的一种方法是:
UPDATE A
SET A.CP = C.CP, A.VILLE = C.VILLE;
FROM AGENCE A
LEFT JOIN CLIENT C ON A.CLIENT_ID = C.CLIENT_ID
更好地实现真正想要的东西,就是从AGENCE
表中删除列,只需在需要时进行连接
SELECT AGENCE.AGENCE_ID, AGENCE.CLIENT_ID, CLIENT.CP, CLIENT.VILLE
FROM AGENCE
LEFT JOIN CLIENT ON AGENCE.CLIENT_ID = CLIENT.CLIENT_ID;
确保您有正确的外键设置。
为什么AGENCE_ID
不是你示例中的第一列?它看起来像一把钥匙。
答案 1 :(得分:0)
对于MSSQL,它将是:
UPDATE a
SET VILLE = c.VILLE, CP = c.CP
FROM CLIENT c
INNER JOIN AGENCE a ON c.CLIENT_ID=a.CLIENT_ID
答案 2 :(得分:0)
我只是更新@compuchip的答案
UPDATE A
SET A.CP = C.CP, A.VILLE = C.VILLE;
FROM AGENCE A
LEFT JOIN CLIENT C ON
A.CLIENT_ID = C.CLIENT_ID
AND
A.AGENCE_ID = C.CLIENT_ID