我在MS Access表单上运行VBA驱动的SQL。
在此测试声明中,我尝试根据另一个表引导的LanguageID
插入Territory_CountryID
信息。
以下是我的代码:
INSERT INTO tblTest
SELECT tblCountry_Language.LanguageID
FROM tblCountry_Language
WHERE Territory_CountryID =
(SELECT tblTerritory_Country.Territory_CountryID
FROM tblTerritory_Country
WHERE tblTerritory_Country.TerritoryID = "& [Forms]![frmInput]![frmInput_Terms].[Form]![CountryID] &");"
运行SQL时,我得到运行时错误3554,说
“此子查询最多可以返回一条记录”
我理解这个错误意味着什么;查询只能在其子查询中搜索一个“密钥”。
如果我想返回连接到Territory_CountryID
的所有语言,我能做些什么吗? I.E.,根据所有返回的Territory_CountryID
进行搜索?
感谢。
答案 0 :(得分:0)
SQL关键字IN
允许您通过逗号分隔列表(例如:(512, 513, 514)
)或返回多个值的子查询指定一组数据作为过滤条件,如你有上面的。
您的第四行应更改为:
WHERE Territory_CountryID IN
我希望这会有所帮助。
-C§
答案 1 :(得分:0)
为什么在简单的socketEvent.Completed += new EventHandler<SocketAsyncEventArgs>(AcceptCompleted); //Add a callback on completed accept incomming connections attemp.
就足够的情况下,甚至可以在WHERE
子句中运行子查询:
JOIN