【发布时间】:2016-11-19 03:14:52
【问题描述】:
我正在尝试根据CustNo 值将INSERT 转换为Accounts,表格由AccountId 连接。出于某种原因,我无法弄清楚,SELECT cust.CustNo 列基于GivenName 和Surname 的Custs 表列,尽管在单独测试时使用相同的 WHERE 子句,但它并没有抓住任何东西。
INSERT INTO Accounts (Type, Balance, CustNo)
SELECT
'Chequing', 0, cust.CustNo
FROM
Custs cust
INNER JOIN
Accounts ON cust.CustNo = Accounts.CustNo
WHERE
cust.GivenName = 'FirstName' AND cust.Surname = 'LastName';
我想不出任何理由为什么这不会返回任何错误,但也可以使用相同的WHERE 获取正确的CustNo 作为单独的SELECT。我是否在某处遗漏了将这两个表关联起来的基本字段,或者可能错误地将它们连接起来?
【问题讨论】:
-
我建议添加表定义和示例数据以及预期输出。这将有助于其他人理解您的问题,并帮助您尽快获得最佳答案。
-
我完全不明白您为什么要加入 Accounts。您不使用其中的任何字段,如果这是您插入客户的第一个帐户,则联接将导致不返回任何结果
-
@JamesCasey,我为不够清晰而道歉。 Type 和 Balance 来自 Accounts,而 CustNo、GivenName 和 Surname 来自 Custs。
-
但是如果你要插入它们,它们还不存在,所以当你加入时,你什么也得不到
标签: sql sql-server tsql insert inner-join