我将所有记录都放在一张表中。我只想查看任何用户的记录,如果他们在DATE字段中没有日期> = 2017-01-01的记录。
因此,如果说用户A有多条记录:
RID USER DATE
1 A 2015-01-01
2 A 2016-01-01
3 A 2017-01-01
由于日期> = 2017-01-01的记录,我不希望看到用户A的任何记录。
如果上面的日期> = 2017-01-01的RID 3不存在,那么我想查看用户A的任何或所有其他记录,即RID 1& 2。
我不知道!
很抱歉这里是我的所有代码都不起作用,它仍会显示那些日期> ='2017-01-01'的所有记录,它只是没有显示他们有日期的记录> = 2017-01-01。如果他们有一个日期> = 2017-01-01的记录,我不想看到任何记录:
select t.*, t2.*, T3.*
from t
left outer join t2 on t.id = t2.id
left outer join t3 on t3.id = t2.id
where not exists (select 1
from t t2
where t2.user = t.user and t2.date >= '2017-01-01'
)
and t3.name = 'abc'
and t2.status = 'con'
and (t.note like '%true%' or t.note like '%false%')
order by 1,2
谢谢,
MP
答案 0 :(得分:2)
只需使用select t.*
from t
where not exists (select 1
from t t2
where t2.user = t.user and t2.date >= '2017-01-01'
);
:
which()