我有两个表,T_A和T_B,都有一个相同名字的字段KEY_NAME,我使用SQL语句是
SELECT * FROM T_A,T_B WHERE T_A.KEY_NAME=T_B.KEY_NAME,我用ADO连接ACCESS,能够查询到正确结果,可是如果连接SQL Sever,就会出现错误。请问这个SQL语句在SQL Server中有什么错误吗??

解决方案 »

  1.   

    SELECT * FROM T_A,T_B WHERE T_A.KEY_NAME=T_B.KEY_NAME?语句没错误.
      

  2.   

    SELECT * FROM T_A,T_B WHERE T_A.KEY_NAME=T_B.KEY_NAME得制定是那个表的*吧!
      

  3.   

    语句没错,但是你用*的话结果就会有两个KEY_NAME字段
      

  4.   

    SELECT T_A.* FROM T_A,T_B WHERE T_A.KEY_NAME=T_B.KEY_NAME
      

  5.   

    SELECT * FROM T_A,T_B WHERE T_A.KEY_NAME=T_B.KEY_NAME
    指定具体要查询的字段
      

  6.   

    语句没有错误....
    问题不是在语句,而是你的数据库。
    检查你的数据库是否建SQL服务器中?
      

  7.   

    数据库和表都是存在的,我查询单个的T_A和T_B都可以得到结果,但是连接查询就不行。
      

  8.   

    再大概再简化说一下我的问题,
    其中有两个表T_A和T_B,
    T_A有字段 WORKER_ID,WORKER_NAME,KEY_NAME
    T_B有字段 MEA_ID,MEA_VALUE,MEA_LOCATION,KEY_NAME,我想根据T_B的MEA_ID获取两个表的内容,并显示出来。
    我的SELECT语句是 SELECT * FROM T_A,T_B WHERE MEA_ID=‘12580’ AND T_A.KEY_NAME=T_B.KEY_NAME
    程序使用ADO连接数据库,在使用ACCESS数据库的时候正常,但是使用SQL Server就不行,_Recordset在open的时候出错。而我查询单个的T_A和T_B的时候都可以得到结果,应该可以认为数据源是没问题的吧。
    我也试过SELECT T_A.* FROM T_A,T_B WHERE T_A.KEY_NAME=T_B.KEY_NAME,也会出错。真是搞不懂了。
      

  9.   


    你打开sql 事件探查器 跟踪看看 是不是程序传入语句有问题?
      

  10.   

    前面不是说了,*理论上会显示两表中的KEY_NAME,但是DB会问你要显示哪个KEY_NAME?
    单个table的KEY_NAME当然没有问题。
      

  11.   

    SELECT * FROM T_A,T_B WHERE T_A.KEY_NAME=T_B.KEY_NAME
    语句没问题
    问题出在程序中取字段KEY_NAME时不知道取哪个T_A.KEYNAME还是T_B.KEYNAME