脚本如下:
select * from TABLE1 where TABLE1_ID1 IN ( select TABLE4_ID3 from TABLE4 where TABLE4_ID1
IN ( select TABLE3_ID1 from TABLE3 where left(CREATE_DATE , 8) >= 20050101 )具体说明:
3 个表 TABLE1、TABLE3、TABLE4 ;
TABLE1 TABLE3 TABL4TABLE1_ID1 TABLE3_ID1 TABLE3_ID3 TABLE4_ID1
字段说明: 1、TABLE3 中 TABLE3_ID1 的记录在 TABLE4_ID1 中一定可以找到;2、TABLE3 中 TABLE3_ID3 的记录在 TABLE1_ID1 中一定可以找到;3、TABLE4_ID1 中的记录不会重复, 但是 TABLE3_ID1 的记录可能会重复;形象点按照集合大小来说就是:TABLE1_ID1 >= TABLE4_ID3
TABLE3_ID1 >= TABLE4_ID1不知道有没有说清楚,请帮忙优化下,谢谢!
select * from TABLE1 where TABLE1_ID1 IN ( select TABLE4_ID3 from TABLE4 where TABLE4_ID1
IN ( select TABLE3_ID1 from TABLE3 where left(CREATE_DATE , 8) >= 20050101 )具体说明:
3 个表 TABLE1、TABLE3、TABLE4 ;
TABLE1 TABLE3 TABL4TABLE1_ID1 TABLE3_ID1 TABLE3_ID3 TABLE4_ID1
字段说明: 1、TABLE3 中 TABLE3_ID1 的记录在 TABLE4_ID1 中一定可以找到;2、TABLE3 中 TABLE3_ID3 的记录在 TABLE1_ID1 中一定可以找到;3、TABLE4_ID1 中的记录不会重复, 但是 TABLE3_ID1 的记录可能会重复;形象点按照集合大小来说就是:TABLE1_ID1 >= TABLE4_ID3
TABLE3_ID1 >= TABLE4_ID1不知道有没有说清楚,请帮忙优化下,谢谢!
解决方案 »
- SQL SERVER 2005连接oracle数据库查询视图出现汉子乱码
- 问一个统计数字的问题
- 请问我做SQLSERVER系统如何规划RAID系统?我有5个SCSI盘
- 如何将IIS的W3SVC日志转换到SQL SERVER 2K的数据库中?
- 有关Sql IIF()函数的问题,大家来帮忙的说.
- sqlserver中对应ORACLE序列对象的机制是什么?
- 怎样更改服务器排序规则?
- 理解SQL语句
- 请问SQL SERVER 2000的性能问题,在线等
- 关于oracle7 and oracle8i中like操作符问题
- sql sever 2005 express版中如何安装全文检索服务?
- 求一最新的汉字拼音库!高分救急呀!
select *
from TABLE1 T1
where exists (select 1 from TABLE4 T4 where T4.TABLE4_ID3=T1.TABLE1_ID1 and exists (select 1 from TABLE3 T3 where T4.TABLE4_ID1=TABLE3_ID1 and left(CREATE_DATE , 8) >= 20050101))
TABLE1 a inner join
TABLE4 b on a.TABLE1_ID1=b.TABLE4_ID3 inner join
TABLE3 c on b.TABLE4_ID1=c.TABLE3_ID1
where c.CREATE_DATE >= cast('20050101' as datetime)--left(CREATE_DATE , 8) >= 20050101 注意这种写法会使在这个字段的的所以不起作用
我最终要的是 TABLE1 中的数据,但是要根据 TABLE1 中的 TABLE1_ID1 在 TABLE4 中的 TABLE4_ID3来查的,但是 TABLE4_ID3对应的 TABLE4_ID1 又在 TABLE3 中的 TABLE3_ID1中。三个表逐个限制的;