多表查询 Myth丶恋晨 2021-09-10 03:54 593阅读 0赞 昨天到今天都在搞多表查询,可能是我经验不足,搞得头大阿,越想越烦,早上在地铁里,终于想明白了,原来没那么复杂。 一开始想的是对的,后来发现查询出多条重复记录,就开始左思右想是不是sql写的不对,关系搞错了。其实这样写就可以搞定了。 <select id="getAdminByAdminOrFunction" parameterClass="java.util.Map" resultClass="photo.central.po.admin.Admin"> select DISTINCT a.\* from admin\_func\_ref af left join admin a on a.admin=af.admin where 1 = 1 <dynamic prepend="and"> <isNotEmpty property="admin"> a.name like '%$name$%' </isNotEmpty> </dynamic> <dynamic prepend="and"> <isGreaterThan property="functionId" compareValue="0"> af.functionId = \#functionId\# </isGreaterThan> </dynamic> </select> 这样查询,很神奇的地方就是一个distinct,看前人的代码受到的启发。 接下来Count出查询出记录的条数。 <select id="countQueryAdmin" resultClass="java.lang.Integer"> select count(DISTINCT a.admin) from admin\_func\_ref af left join admin a on a.admin=af.admin where 1 = 1 <dynamic prepend="and"> <isNotEmpty property="admin"> a.name like '%$name$%' </isNotEmpty> </dynamic> <dynamic prepend="and"> <isGreaterThan property="functionId" compareValue="0"> af.functionId = \#functionId\# </isGreaterThan> </dynamic> </select> 唉 。。。。。。。。。。。。。。。。。 另外,在查询mysql手册 mysql 优化(4)里发现,当 LIMIT row\_count 和 DISTINCT 一起联合起来时,MySQL在找到 row\_count 条唯一记录后就不再搜索了。由此,此语句可以优化一下 <select id="getAdminByAdminOrFunction" parameterClass="java.util.Map" resultClass="photo.central.po.admin.Admin"> select DISTINCT a.\* from admin\_func\_ref af left join admin a on a.admin=af.admin where 1 = 1 <dynamic prepend="and"> <isNotEmpty property="admin"> a.name like '%$name$%' </isNotEmpty> </dynamic> <dynamic prepend="and"> <isGreaterThan property="functionId" compareValue="0"> af.functionId = \#functionId\# </isGreaterThan> </dynamic> limit 1 </select>
相关 多表查询 一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 首先说一下,我们写项目一般都会建一个数据库,那数据库里面是不是存了好多张表啊,不 亦凉/ 2023年08月17日 15:25/ 0 赞/ 225 阅读
相关 多表查询 多表查询 实体类的关系 表之间的关系有几种:一对多,多对一 ,一对一,多对多 举例: 用户和订单就是一对多 订 £神魔★判官ぃ/ 2023年06月06日 10:37/ 0 赞/ 29 阅读
相关 多表查询 等值连接: 表先做笛卡尔积,在进行筛选,筛选条件为等值筛选 查询员工名字以及部门 select s1.last\_name,s2.name from s\ 素颜马尾好姑娘i/ 2023年06月03日 09:58/ 0 赞/ 123 阅读
相关 多表查询 1.增删改 一对多 增:先一后多,外键可以为对象或依赖表的主键 publish = Publish.objects.create(...) ゝ一纸荒年。/ 2022年10月03日 00:39/ 0 赞/ 291 阅读
相关 select单表查询,多表查询,子查询 > DML:语句,常用的select ,insert into ,delete,updata select 语句: select 语句一般用法为: select 字段名 f 淡淡的烟草味﹌/ 2022年05月30日 03:19/ 0 赞/ 539 阅读
相关 【javaweb:多表查询】多表查询的一个例子 1、首先有两个表,一个orderitem表(从表),一个product表(主表)如下图所示 orderitem表: ![Image 1][] product表: r囧r小猫/ 2022年05月29日 08:57/ 0 赞/ 495 阅读
相关 多表查询 多表查询 概念 多表查询的推荐写法 查询雇员和其所在部门信息: SELECT FROM EMP, DEPT WHERE EMP.DEPTNO = 一时失言乱红尘/ 2022年05月27日 01:36/ 0 赞/ 334 阅读
相关 多表查询 多表查询多个字段 select 表名.要查的字段,表名.要查的字段,表名.要查的字段 from 主表 别名 LEFT JOIN 第二张表 别名 ON 条 以你之姓@/ 2022年03月09日 05:38/ 0 赞/ 385 阅读
相关 多表查询 左连接,内连接,子查询,右连接 角色表两条记录,id=1,2 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_sh 布满荆棘的人生/ 2021年09月19日 04:46/ 0 赞/ 542 阅读
相关 多表查询 昨天到今天都在搞多表查询,可能是我经验不足,搞得头大阿,越想越烦,早上在地铁里,终于想明白了,原来没那么复杂。 一开始想的是对的,后来发现查询出多条重复记录,就开始左思右想是不 Myth丶恋晨/ 2021年09月10日 03:54/ 0 赞/ 594 阅读
还没有评论,来说两句吧...