sql server中多表查询的规范问题
问题的提出:
日前,在开发一个网站的时候,遇到了这样一个有趣的事情:
select entele,resname from enterprisetourshowdetailinfo,resappbasicinfo where enterpriseid=resid and resid=<%=e_id%>
这是一个很简单的sql语句,在内部局域网上也可以调试成功,但是,移到公司的web服务器上就出现了找不到entele的问题。 由于两台机器的环境都是sqlserver+win2000是在想不出来有什么问题;
问题的解决:
经试验,高手做出如下调试select a.entele,b.resname from enterprisetourshowdetailinfo a,resappbasicinfo b where a.enterpriseid=b.resid and b.resid=<%=e_id%>
查询正确
问题分析
由于两边地网络环境一致,因此不存在网络环境对于程序的影响;再者,我是用的是数据库的查询功能,和程序应该没有影响了;至于在多表查询的时候,为什么一定要区分表名,这一点暂时还没有理解。一般来说,使用数据表别名的功能,是在列名有重复的情况下。估计可能是entele是系统表的一个列名,这样产生了冲突(胡诌的)。