如何用B表中的数据去更新A表中的数据
编号:QA001923
建立日期: 1999年10月28日 最后修改日期:1999年10月30日
所属类别:
Jacky Haung:
假设有如下两个表A和B
A: XMDH YE B:XMDH YE
1000 100 1000 21
2000 200 2000 50
3000 300
现在我想用B表中的数据去更新A表中的数据,想用SQL语言这样写
UPDATE A SET A.YE=B.YE WHERE A.XMDH=B.XMDH
结果发现在VB中不支持这样的操作!这是怎么回事?如果确实是不支持的话,那么这样的操作又该怎么样用其他的SQL语言代替呢?要知道数据量实在是太大了,总不能叫我一条条去FIND??我有想过先将A表数据全部删除,再将B表数据SELECT INTO 表A,但是一来感觉挺苯的,二来并不是每次更新所有的数据,因此这样的操作实在是不妥,不知你有没有更好的方法?
回答:
Chen Zhenjun的意见:
UPDATE A,B SET A.YE=B.YE WHERE A.XMDH=B.XMDH
于溪玥的意见:
请看引自Ms SQL 7的《Transact-SQL HELP》之"UPDATE (T-SQL)"目录:
...
UPDATE titles
SET ytd_sales = (SELECT SUM(qty)
FROM sales
WHERE sales.title_id = titles.title_id
AND sales.ord_date IN (SELECT MAX(ord_date) FROM sales))
FROM titles, sales
...
正确的作法(在Ms SQL 7 Transact-SQL实现):
UPDATE A
SET YE=B.YE
FROM A INNER JOIN B ON A.XMDH=B.XMDH
注意:
Access 不支持 UPDATE...SET... 的FROM 子句!
songyq的意见:
按照如下的SQL语句即可:
UPDATE A INNER JOIN B ON A.XMBH = B.XMBH SET A.YE = [B].[YE]
此问题由Chen Zhenjun等回答。
| |
|
|
| |
|
|