一个复杂的sql语句,看不太懂!帮忙侃侃啦 20mlsml]

发布时间:2017-3-29 9:33:14 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"一个复杂的sql语句,看不太懂!帮忙侃侃啦 20mlsml]",主要涉及到一个复杂的sql语句,看不太懂!帮忙侃侃啦 20mlsml]方面的内容,对于一个复杂的sql语句,看不太懂!帮忙侃侃啦 20mlsml]感兴趣的同学可以参考一下。

select top 40 j.uid,c.company from fa_u_company as c inner join fa_jobs as j on j.uid=c.id where j.islock=0 and j.isview=1 and datediff(d,getdate(),j.starttime)<=0 and datediff(d,getdate(),j.endtime)>=0 and c.id not in (select distinct top 10 c.id from fa_u_company as c left join fa_jobs as j on j.uid=c.id where c.istop=1 and j.islock=0 and j.isview=1 and datediff(d,getdate(),j.starttime)<=0 and datediff(d,getdate(),j.endtime)>=0) group by j.uid,c.company,j.starttime order by j.starttime desc 这是一个连表查询,返回了24条记录,我现在就是想把返回的记录变多点例如40条,可是看不懂,谁能大概说说意思,谢谢

select top 40是楼主改的啊!? 建议楼主查找‘表连接’有关信息,看看表之间各种连接的用法就知道怎么调整你的查询语句了

select top 40 j.uid,c.company  from fa_u_company as c  inner join fa_jobs as j on j.uid=c.id  where  j.islock=0 and  j.isview=1 and  datediff(d,getdate(),j.starttime)<=0 and  datediff(d,getdate(),j.endtime)>=0 and  c.id not in (select distinct top 40 c.id from fa_u_company as c left join fa_jobs as j on j.uid=c.id where c.istop=1 and j.islock=0 and j.isview=1 and datediff(d,getdate(),j.starttime)<=0 and datediff(d,getdate(),j.endtime)>=0)  group by j.uid,c.company,j.starttime  order by j.starttime desc

这是数据库中的原数据,我没有改动,能跟我讲讲大概意思吗

估计你的数据库里符合条件只有24条

查询结果只有 24 条,怎么可能会变成 40 条?痴人说梦。

晕死.

符合条件只有24条,你就算top 100 还是24条

我暂时先把该段语句分出前面一部分: select top 40 j.uid,c.company from fa_u_company as c inner join fa_jobs as j on j.uid=c.id where j.islock=0 这里涉及top和表连接问题 关于top:它限制显示查询结果集的前面的一些数据,如select top 5 from student则只显示student的最上面的5条记录 关于表连接查询: 它分为内连接(暂没用过),外连接(又分right和left两种连接),举例如下:  student表 name   num       a      1     b      2        score表 num    score 1       60 则为了显示如下结果: name    num      score a       1         60 b       2         null 则需要用到如下语句: select name,student.num,score  from student right join  score on student.num=score.num 或者 select name,student.num,score  from student ,score where student.num *= score.num

刚上网找到的关于inner关联: 要是上表执行 select *  from studentinner join score  on student.num=score.num 则在结果集中不会出现任何含空值的记录

上一篇:sql 2005 还原问题 ----在线等 20HaiYang2006]
下一篇:小妹求助 20qqiask]

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款