Mysql入门Mysql子查询IN中使用LIMIT应用示例
发布时间:2020-12-12 02:53:18 所属栏目:MySql教程 来源:网络整理
导读:《Mysql入门Mysql子查询IN中使用LIMIT应用示例》要点: 本文介绍了Mysql入门Mysql子查询IN中使用LIMIT应用示例,希望对您有用。如果有疑问,可以联系我们。 这两天项目里出了一个问题,LIMIT使用后报错. 需求是这样的,我有3张表,infor信息表,mconfig物料配置
《Mysql入门Mysql子查询IN中使用LIMIT应用示例》要点: 需求是这样的,我有3张表,infor信息表,mconfig物料配置表,maaply物料申请表,要求是读出申请表中哪些人申请哪些物料 于是我先是这样写的: 代码如下: SELECT infor.name,infor.phone,infor.add, mconfig.mname,mapply.acount,from_unixtime(mapply.atime,'%Y-%m-%d') as 'atime' FROM mapply right JOIN infor ON mapply.uid = infor.uid inner JOIN mconfig ON mapply.mid = mconfig.mid WHERE mapply.aid IN ( SELECT aid FROM `mapply` where state = $state ORDER BY `atime`,`uid` DESC LIMIT 0,10 ) 结果报错了 当时没注意报的什么错误,只是看到LIMIT什么的错误,于是改了下代码 代码如下: SELECT infor.name,`uid` DESC ) <pre name="code" class="sql">LIMIT 0,10</pre> 这样没有报错,莫离以为OK了,但是运行后发现,数据有问题 和单纯的读出申请表的内容不一样,才发现LIMIT的位置放错了,于是又把LIMIT发在IN里,结果报错如下 This version of MySQL doesn't yet support ‘LIMIT & IN/ALL/ANY/SOME subquery' 细看才知道,IN里不支持LIMIT.那怎么办呢? 于是度娘后得知,在IN里再使用一张临时表,把需要的内容先查出来, 修改后代码如下: 代码如下: SELECT infor.name,'%Y-%m-%d') as 'atime' FROM mapply right JOIN infor ON mapply.uid = infor.uid inner JOIN mconfig ON mapply.mid = mconfig.mid WHERE mapply.aid IN ( SELECT aid FROM (SELECT `aid` FROM `mapply` where state = $state ORDER BY `atime`,10)AS `tp` ) 运行后,问题办理~~~ 《Mysql入门Mysql子查询IN中使用LIMIT应用示例》是否对您有启发,欢迎查看更多与《Mysql入门Mysql子查询IN中使用LIMIT应用示例》相关教程,学精学透。编程之家PHP学院为您提供精彩教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容