sql数据库两表对照,显录当天没有记录的用户,SQL如何写?

来源:百度知道 编辑:UC知道 时间:2024/06/22 19:37:40
一个SQL数据库,需要调用两个表,一个表(dlinfo)显示用户登陆记录,
有NAME、time等字段
另一个表(user)是用户资料,
有NAME等字段
显示当天用户登陆记录是:sql="Select * From dlinfo where Time between CONVERT(datetime,CONVERT(varchar,GetDate(),111)+' '+'00:00:00') and CONVERT(datetime,CONVERT(varchar,GetDate(),111)+' '+'23:59:59') order by Time asc"

求显示当天没有登陆的用户名的办法,谢谢!

select name from user where name not in (Select name From dlinfo where Time between CONVERT(datetime,CONVERT(varchar,GetDate(),111)+' '+'00:00:00') and CONVERT(datetime,CONVERT(varchar,GetDate(),111)+' '+'23:59:59') order by Time asc)

就是指name都不在当天登陆的用户名中的都当天没有登陆的用户

select * from user where not exists (select * From dlinfo where dlinfo.name=user.name and dlinfo.Time between CONVERT(datetime,CONVERT(varchar,GetDate(),111)+' '+'00:00:00') and CONVERT(datetime,CONVERT(varchar,GetDate(),111)+' '+'23:59:59'))

简单的嵌套查询嘛,先找出登陆过得名字,然后用not in,所有名字减去这个啊
select name from user where name not in (Select name From dlinfo where Time between CONVERT(datetime,CONVERT(varchar,GetDate(),111)+' '+'00:00:00') and CONVERT(datetime,CONVERT(varchar,GetDate(),111)+' '+'23:59:59') 注意中英文输入