select A.Item_ID From A Not In(select B.Item_ID From B)
select A.Item_ID From A Not In(select A.Item_ID From B)
这两句的区别?
select A.Item_ID From A Not In(select A.Item_ID From B)
这两句的区别?
解决方案 »
- c#中将image类型转换成字节
- Winform关于跨线程问题变量.请以代码见真章.
- 急!!各位好,有知道把用.net作好的东东打包,放在无SDK的环境下是否可用.
- C#新手,想写一个 RSS Reader 作为第一个C#程序练手..各位能不能提供点相关资料?(100分,不够追加...)
- 删除最后一条记录的问题
- 怎样动态改变web服务器控件属性
- 请问如何为程序集强签名,老是出错
- 请教一个问题:我想声明一个变量,在各个窗体都能引用它???
- 不解,BeginInvoke的问题,两种不同结果
- 执行完oleDbCommand1.ExecuteReader()后
- WinForm的Datagridview如何禁止DataGridViewButtonColumn列排序
- 水晶报表的小case
b里面要包含a.item_ID的列名!!
(select A.Item_ID From B)
--
取的不同的表
不过
select A.Item_ID From A Not In(select A.Item_ID From B) //这句话能执行,我怀疑
这句话可以执行么
下面两句话没有一句是队的(mssql2000)
select A.Item_ID From A Not In(select B.Item_ID From B)
select A.Item_ID From A Not In(select A.Item_ID From B)---------------------------------------------------------
CREATE TABLE [dbo].[A] (
[item_id] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[col] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[col1] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GOCREATE TABLE [dbo].[B] (
[item_id] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[col] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[col1] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
select A.Item_ID From A Not In(select A.Item_ID From B)
等同于
select A.Item_ID From A Not In(NULL)
即等同于
select A.Item_ID From A
item_ID
1
2
3
b表
item_ID
2
3
4select A.Item_ID From A where item_id Not In(select B.Item_ID From B)
--结果1
select A.Item_ID From A where item_id Not In(select A.Item_ID From B)
--没有结果
以我的人格担保,不但能执行,还能执行出结果。
--
什么数据库
mssql2000,oracle里面都是不能这样执行的
沙漠里的草说得有一定的道理,但是并不完全对。正确的结果应该是:
select A.Item_ID From A Not In(select A.Item_ID From B)
等同于
select A.Item_ID From A
谢谢大家的帮忙分析,都有分。
select A.Item_ID From A where a.item_id Not In(select A.Item_ID From B)
这样就可以啦。。可能是LZ笔误了。
select A.Item_ID From A where item_id Not In(select A.Item_ID From B)等同于select A.Item_ID From A where item_id Not In(select A.Item_ID From a)
还什么结果都没有呢select A.Item_ID From A where item_id Not In(select A.Item_ID From B)
执行计划的参数
where ((a.item_id is null or a.item_id=null) or a.item_id=a.item_id)
select A.Item_ID From A where a.item_id Not In(select A.Item_ID From B)
中(select A.Item_ID From B)应该等同于
select A.Item_ID From B,A
也就是A,B做笛卡尔积后取A.Item_ID的值,
这样结果集就是相当于 select A.Item_ID From A
再用Not in 的话自然结果就是空了。
如果用in的话会出来结果。
中的"select A.Item_ID From B"获得的值实际上就是A.Item_ID,相常于常数也就说
假设select A.Item_ID From A 获得的item_id为值1,这时子查询里select A.Item_ID From B的结果也是1(前提是B至少有一条数据)