access数据库联合查询问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 16:23:42
我想从BASE_INFORMATION表中查找MANUFACTURE的数据
这个MANUFACTURE是由TYPE_NAME决定的,TYPE_NAME这个字段在TYPE_INDEX_TABLE中,在TYPE_INDEX_TABLE中查出TYPE_INDEX后,根据TYPE_INDEX然后再在BASE_INFORMATION中找出MANUFACTURE
我写的C#代码如下,结果调试总是出问题,说是“In 操作符没有 () 在查询表达式 'TYPE_INDEX In Select TYPE_INDEX From TYPE_INDEX_TABLE Where TYPE_NAME = {0}Sponsor' 中”。谁知道怎么解决。谢谢啦。

string queryString =
"Select MANUFACTURE From BASE_INFORMATION Where TYPE_INDEX In Select TYPE_INDEX From TYPE_INDEX_TABLE Where TYPE_NAME = {0}"
+ DeviceType;
如果回答的详细,可以加分

string queryString =
"Select MANUFACTURE From BASE_INFORMATION Where TYPE_INDEX In (Select TYPE_INDEX From TYPE_INDEX_TABLE Where TYPE_NAME = " + DeviceType + ")";

首先就是,用了{0}却没用string.Format应该算是疏忽。
第二个就是,子查询应该用()括起来。

上面代码未作测试,你可以自行测试一下。

string queryString =
"Select MANUFACTURE From BASE_INFORMATION Where TYPE_INDEX In (Select TYPE_INDEX From TYPE_INDEX_TABLE Where TYPE_NAME = {0})"
加个括号看看

string queryString =
"Select MANUFACTURE From BASE_INFORMATION Where TYPE_INDEX In (Select TYPE_INDEX From TYPE_INDEX_TABLE Where TYPE_NAME = '"+DeviceType+"')" ;
加上()小括号