一个表查询的超难的问题,弄了几天没有处理好
表1,
字段:id,wangzhi,cishu
表2
字段,id,表1的id,日期
我要求选出的字段是表1的wangzhi,条件是,表1的id和表2中的 "表1的id "相同,而且表2的日期要大于24小时,或者是表2中 "表1的id "不存在,
请各位老大,给点思路
[解决办法]
CREATE TABLE Tab1
(
[id] int,
[wangzhi] varchar(30),
[cishu] int
)
CREATE TABLE Tab2
(
[id] int,
[Aid] int,
[theDate] datetime
)
INSERT Tab1
SELECT 1, 'http://www.com1.com ',3 UNION ALL
SELECT 2, 'http://www.com2.com ',2 UNION ALL
SELECT 3, 'http://www.com3.com ',5
INSERT Tab2
SELECT 1,1,DATEADD(day,1,GETDATE()) UNION ALL
SELECT 2,2,GETDATE()
--你要的语句开始
SELECT A.wangzhi FROM Tab1 AS A,Tab2 AS B WHERE (A.id=B.Aid AND DATEDIFF(day,GETDATE(),B.theDate)> =1) UNION ALL
SELECT Tab1.wangzhi FROM Tab1 WHERE Tab1.id NOT IN(SELECT Tab2.Aid FROM Tab2)
--你要的语句结束
DROP TABLE Tab1
DROP TABLE Tab2