select * from table1
where filed1 in
(select fileld2 from table2)若table2中无field2字段,亦不会报错。对此现象,如何理解?谢谢!

解决方案 »

  1.   

    有解释的话,你的SQL查询分析器有问题
      

  2.   

    Server: Msg 207, Level 16, State 3, Line 1
    Invalid column name 'fileld2'.我试的不行啊?
    能把你的 两个table 结构 贴出来 大家看一下
      

  3.   

    测试用语句:
    select * from c_employee where emp_id in
    (select emp_id from c_department)表结构:
    CREATE TABLE [dbo].[c_employee] (
    [emp_id] [char] (3) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [emp_name] [char] (8) COLLATE Chinese_PRC_CI_AS NULL ,
    [manag_id] [char] (2) COLLATE Chinese_PRC_CI_AS NULL ,
    [dep_id] [char] (3) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [dep_name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
    [emp_loginid] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
    [emp_email] [char] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [emp_phone] [char] (6) COLLATE Chinese_PRC_CI_AS NULL ,
    [bailor_id] [char] (3) COLLATE Chinese_PRC_CI_AS NULL ,
    [agent1_id] [char] (3) COLLATE Chinese_PRC_CI_AS NULL ,
    [agent2_id] [char] (3) COLLATE Chinese_PRC_CI_AS NULL ,
    [agent3_id] [char] (3) COLLATE Chinese_PRC_CI_AS NULL ,
    [emp_valid] [tinyint] NULL ,
    [dummy_flag] [tinyint] NULL ,
    [duty_code] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GOCREATE TABLE [dbo].[c_department] (
    [dep_id] [char] (3) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [dep_no] [char] (3) COLLATE Chinese_PRC_CI_AS NULL ,
    [coop_id] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
    [dep_name] [varchar] (8) COLLATE Chinese_PRC_CI_AS NULL ,
    [dep_desc] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [dep_superior] [varchar] (3) COLLATE Chinese_PRC_CI_AS NULL ,
    [dep_tag] [int] NOT NULL ,
    [depid_uf] [char] (3) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GO
      

  4.   

    看了这个结构,呵呵,这个当然可以执行了。select * from c_employee where emp_id in (select emp_id from c_department)
    相当于
    select * from c_employee where emp_id in (select emp_id from c_department cross join c_employee)
      

  5.   

    select emp_id from c_department
    这个表里根本没这个emp_id字段啊,所以报错
      

  6.   

    看错……
    刚刚试了下,如果表2中没field2字段,结果报错
    sql 2000
    xp sp2
      

  7.   

    TO SP4(1):既然是相当于cross join,那为何maple0112() 等运行时都会报错呢?