看了这个结构,呵呵,这个当然可以执行了。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)
select emp_id from c_department 这个表里根本没这个emp_id字段啊,所以报错
看错…… 刚刚试了下,如果表2中没field2字段,结果报错 sql 2000 xp sp2
TO SP4(1):既然是相当于cross join,那为何maple0112() 等运行时都会报错呢?
Invalid column name 'fileld2'.我试的不行啊?
能把你的 两个table 结构 贴出来 大家看一下
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
相当于
select * from c_employee where emp_id in (select emp_id from c_department cross join c_employee)
这个表里根本没这个emp_id字段啊,所以报错
刚刚试了下,如果表2中没field2字段,结果报错
sql 2000
xp sp2