老滚5不会用控制台:如何取出Inner Join表中的同名字段值,急!!

来源:百度文库 编辑:神马品牌网 时间:2024/05/02 18:10:38
sql = "select * from Table_a inner join Table_b on Table_a.RoleType=Table_b.UK_RoleID where Table_a.Name='test'"
rs.open sql,conn,1,1
if rs.eof and rs.bof then
else
theName=rs("Name")
theStatus = rs("Table_a.Status")
end if

两个表中均有同名字段Status,结果用上面的方法在SQLServer中出错,但在Access中可以正确显示。
不明白为什么
报错是:ADODB.Recordset 错误 '800a0cc1'
在对应所需名称或序数的集合中,未找到项目。
CheckUser.asp,行121
以上的两个字段名,我都需要。肯定是可以的。在Access里就可以的。只是在SQLServer中使用theStatus = rs("Table_a.Status") 出错。
----
theStatus = rs(5) 这个怎么能确定呢?每次我非得用查询分析器列出结果来数一个位置,再用取值吗?用theStatus = rs("Table_a.Status")不成吗?
-------
解决了。用别名
select A.*,B.status as b_status from Table_a A inner join Table_b B on A.RoleType=B.UK_RoleID

response.write rs("status") & "---" & rs("b_status")

如果你知道这个字段的序号,比如是第5个,就用theStatus = rs(5) 来取出

估计联系的两个表不能有相同的字段。或者你可以稍微麻烦一点在前面的 SELECT 那里指明选择那些字段,把其中一个相同字段不要,然后在后面引用的时候就不要前面的表名了,应该可行吧。