INSERT到表中,包括相关表的外键

时间:2014-09-22 09:53:17

标签: database ms-access select insert multiple-databases

请有人帮忙,

我有三张桌子:1。客户; 2账户; 3.交易......

我想通过ClientName获取ClientID,并通过AccountName获取AccountID,然后将这些ID输入到Transactions以及其他一些已知的字段的其他值......

客户

ClientID | ClientName | ...

帐户

AccountID | AccountName | ...

交易

TransID | Account ID | ClientID | Value | Tax | Total

我怎么能这样做...我尝试了很多种形式的插入语句,但它没有工作

我试过了:

INSERT INTO Transactions (AccountID, ClientID, Value) Values 
(SELECT AccountID WHERE AccountName = 'Some Name' 
 FROM Accounts, SELECT ClientID WHERE ClientName = 'Some Name' FROM Clients, 30.00 )

1 个答案:

答案 0 :(得分:1)

Value是MS Access中的保留字。

我想你想要这样的东西:

INSERT INTO Transactions ( AccountID, ClientID, [Value] )
SELECT Accounts.AccountID, Clients.ClientID, 30.00 AS Expr1
FROM Accounts, Clients
WHERE (((Clients.ClientName)='Jimmy') AND ((Accounts.AccountName)='Mark'));

您可能需要重写SQL以正确拟合您的表/表名称,但这对我有用。

您还应该确保ValueDouble数据类型,而不是长整数。 (这是数字字段的默认值)