Sql server 来自选择的更新抱怨返回了多个值
我有这样的数据结构:Sql server 来自选择的更新抱怨返回了多个值,sql-server,sql-server-2005,tsql,Sql Server,Sql Server 2005,Tsql,我有这样的数据结构: request ======= building_id lot_code building ======== building_id lot_id lot === lot_id lot_code request表缺少building_id列的值,我想从其他表中填充它。所以我试过这个: UPDATE request SET building_id = ( SELECT bu.building_id FROM building bu INNER J
request
=======
building_id
lot_code
building
========
building_id
lot_id
lot
===
lot_id
lot_code
request表缺少building_id列的值,我想从其他表中填充它。所以我试过这个:
UPDATE request
SET building_id = (
SELECT bu.building_id
FROM building bu
INNER JOIN lot lo ON bu.lot_id=lo.lot_id
WHERE lo.lot_code = request.lot_code
);
但我得到了一个错误:
子查询返回了多个值。
这是不允许的,因为
子查询后面是=,!==
或者当子查询用作
表情
是因为语法错误吗?数据模型允许每个地块有多个建筑,但实际数据不包含此类情况,因此每个地块代码最多应有一个建筑id。在查询中使用top 1,如下例所示 UPDATE request SET building_id = ( SELECT top 1 bu.building_id FROM building bu INNER JOIN lot lo ON bu.lot_id=lo.lot_id WHERE lo.lot_code = request.lot_code ); 也许你是说
UPDATE request
SET building_id = bu.building_id
FROM building bu
INNER JOIN lot lo ON bu.lot_id=lo.lot_id
WHERE lo.lot_code = request.lot_code