mybatis中对于子查询列的排序问题 5C

我在mysql中直接写语句:
SELECT
bgb.goods_num,
bgb.goods_type_icon,
bgb.goods_id,
bgb.goods_name,
bgb.goods_sort,
bgt.type_name,
bgs.style_name,
bgbr.brand_name,
bgb.goods_code,
bgb.is_shelf,
(select sum(sku_sale_count) from busi_goods_sku AS bgsku WHERE bgb.goods_id=bgsku.goods_id) as sale_count
FROM
busi_goods_base AS bgb
LEFT JOIN busi_goods_type AS bgt ON bgb.goods_type_id=bgt.type_id
LEFT JOIN busi_goods_style AS bgs ON bgb.goods_style_id=bgs.style_id
LEFT JOIN busi_goods_brand as bgbr ON bgb.goods_brand_id=bgbr.brand_id
WHERE
bgb.is_del=0
ORDER BY
sale_count DESC

是 可以进行查询的,但是把它放到mybatis的mapper.xml中,运行的时候会报错

图片说明

0

10个回答

有个表没有sale_count这个字段

1

sale_count 这个要加上具体的表名,是哪个表里边的这个字段要写清楚才行。

1
0
cui929434
上若筱虓 用别名确定字段
一年多之前 回复
tr1912
王啸tr1912 这个明显不一样好吧。。。。
一年多之前 回复

select t.* from(你的sql) t,我以前也是遇到类似问题

0
qq_14928713
qq_14928713 回复王啸tr1912: 就t.* 可以了啊,不用写什么
一年多之前 回复
tr1912
王啸tr1912 t.*应该写什么?
一年多之前 回复

楼主,报错图片看不了啊,请重发一下。

0

图片说明
有这种写法?

0

再套一层 你这个sale_count 不在from的表中

0

select st.* from(
SELECT
bgb.goods_num,
bgb.goods_type_icon,
bgb.goods_id,
bgb.goods_name,
bgb.goods_sort,
bgt.type_name,
bgs.style_name,
bgbr.brand_name,
bgb.goods_code,
bgb.is_shelf,
(select sum(sku_sale_count) from busi_goods_sku AS bgsku WHERE bgb.goods_id=bgsku.goods_id) as sale_count
FROM
busi_goods_base AS bgb
LEFT JOIN busi_goods_type AS bgt ON bgb.goods_type_id=bgt.type_id
LEFT JOIN busi_goods_style AS bgs ON bgb.goods_style_id=bgs.style_id
LEFT JOIN busi_goods_brand as bgbr ON bgb.goods_brand_id=bgbr.brand_id
WHERE
bgb.is_del=0)st
ORDER BY
st.sale_count DESC

0

用别名确定你要分组或排序的字段 ,还有确定字段是否存在

0

mybatis不支持这样嵌套图片说明

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
在论坛中出现的比较难的sql问题:2(row_number函数+子查询)
最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了。 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路。   1、时间间隔计算. http://bbs.csdn.net/topics/390608930  这个问题非常复杂。 start_time                  end_t
解决MySQL子查询排序失效的问题
问题描述:高版本的MySQL(5.6以上)在子查询中使用order by 语句后查询结果并不会显示排序后的结果。 以下是我使用的两个解决方法,供参考: 1.当子查询的order by语句后面没有limit关键字时,数据库会自动优化,即忽略order by语句。因此只需要添加limit关键字即可。 2.在子查询中使用聚合函数。 具体示例如下所示: 现在我有一张表message,存放用户...
MyBatis嵌套查询解析
Mybatis表现关联关系比hibernate简单,没有分那么细致one-to-many、many-to-one、one-to-one。而是只有两种association(一)、collection(多),表现很简洁
mybatis中order by排序无效问题
mybatis中 $,# 的区别,在order by时转义导致无效
Mysql5.7版本group by 子查询中order by 无效的问题解决办法
我们都知道group by 会选择保留第一条数据,默认是按照id排序的,如果我们想通过别的字段排序,比如最后创建的那条记录,可以先按照创建时间降序,再group by即可得到每个分组的最新创建的数据。 例: 通过如下sql查出两条数据 SELECT * FROM xxx WHERE groupId = 11 ORDER BY effectiveDate DESC 现在group by...
mybatis子查询
如上: 这种方式是把对关联表的查询单独拎出来, association的属性有property:查询结果存放的属性,javaType:查询结果返回的类型,select:拎出来的查询语句,而column:相当于是把参数赋给查询语句。 我在宁外的地方看到别人把查询语句放在一起,查询结果单独处理的 链接:https://blog.csdn.net/qq_36544760/article...
mybatis一对多传递多个参数和传递主表未有的字段到子查询
mybatis一对多传递多个参数和传递主表未有的字段到子表 mybatis n+1查询的时候有时需要跟子表关联几个字段联合查询。 一对多需要用到mybatis标签<collection>。这个标签的各种参数的含义、以及怎么传递多个值到子查询、传递主表中没有的字段的参数到子查询的解决办法都在下面做了讲解。 mapper.xml <?xml version="1.0
使用group by分组之后子查询的order by排序失效的问题
需求: 1.首页的查询需要按照lrsj进行排序 2.每一条数据通过fchrq,chxh进行分组 原始的sql SELECT fchrq,chxh FROM (SELECT top 100 percent chxh,fchrq,lrsj FROM HCZZQD_source where chxh is not null ORDER BY lrsj desc) T
mysql 5.6升级到5.7之后 子查询里面的order排序无效
mysql5.7以及以后版本将会对order 语句有默认的规则,因此 在子查询内部 使用order by 可能会被忽略。网上解决的方法啊大多数是在子查询 的order by xxx desc 后增加 limit 99999. 本地测试如下: select tab_.*,ias.name as studio_name from (SELECT adp.id ,adp.creator as cr...
mybatis 构造查询和联合子查询问题
1.在关联查询 - 子查询的时候                                                            column="userid" select="SelectUserByID" >                                         resultType="User">
转载————————UNION ALL中包含子查询 order by导致的错误问题
转载自易的专栏  union all中使用order by子查询时需将含order by的子查询包在一个不含order by的查询里再进行union all。 否则会报“Incorrect usage of UNION and ORDER BY” 例如: 1.错误用法:            select id from test1 order by id            uni...
mysql 子查询(七)之子查询排序
大多数子查询不需要排序,没有意义。因为子查询大多数是作为一个结果或参数给主查询使用。但top-n问题除外。举个例子,查询员工表中“行政部”的员工。select * from emp where empdetno = (select empdetno from bmb where bmname = '行政部')子查询的结果给主查...
Mybatis 递归子查询遇见的问题
在运用Springboot +springcloud+mybatis项目中,在菜单列表的三级查询中运用到mybatis递归子查询,然而在查询的时候,有好几次只执行了第一次查询,第二次子菜单不显示。 因为一直想着这个问题,做梦想到了这个问题的关键                                     SELECT strMenuId,
mybatis级联查询,子查询多条件,且参数包含父查询没有的字段
mybaits中的级联查询,一对一,一对多等,有两种情况 1.一个参数,一般来说,这个参数是子查询与父查询的共有字段 mapper.xml <resultMap id="ProjectResult" type="com.spms.entity.CompleteProject"> <result column="projid" jdbcType="NUME...
子查询――多字段的顺序问题
查和104号员工同一个部门和同一个经理的所有员工的员工编号、姓名和部门。 hr@OCM> SELECTemployee_id,first_name,department_id   2  FROMemployees   3 WHERE (manager_id,department_id) = (SELECT department_id,manager_id FROM   4 employee
Group by无法排序,但可以通过子查询实现
select * from table where id in (select max(id) from table where tid in(0,10) group by name) ORDER BY id DESC 上面代码是经过我实践过可以正常使用的,网上资料有人说下面的代码也可以实现,但我试过不行,不过也提供出来仅供大家参考吧。 SELECT * FROM (SELECT *
实现子查询排序
USE tempdb GO IF OBJECT_ID('t') IS NOT NULL DROP TABLE t GO CREATE TABLE t(id INT,[time] DATETIME,num1 INT) INSERT INTO t SELECT 9,'2018-02-09 15:55:40',3 UNION ALL SELECT 8,'2018-02-08 15:55:26',1 UN
MySQL:先进行子查询排序再group by,但排序失效问题的解决办法
问题描述 使用如下sql,先在子查询中进行order by排序,再对查询结果进行group by分组,但查到的结果并没有正确排序。 MySQL版本为5.7。 SELECT * FROM ( SELECT * FROM app_login_record ORDER BY ctime DESC ) app_login_record WHERE appid = 4 GROUP BY useri...
Ibatis insert语句中包含子查询问题
目录(?)[+] insert语句中包含子查询问题 Ibatis中的Insert语句,将values采用select代替 [sql] view plaincopy insert id="insertFaqContinue">          INSERT INTO FAQ (           dynamic prepend="">
oracle 多表 联合 查询 统计 组函数 order by having 子查询 集合 运算
多表联合查询 通过连接可以建立多表查询,多表查询的数据可以来自多个表,但是表之间必须有适当的连接条件。为了从多张表中查询,必须识别连接多张表的公共列。一般是在WHERE子句中用比较运算符指明连接的条件。 忘记说明表的连接条件是常见的一种错误,这时查询将会产生表连接的笛卡尔积(即一个表中的每条记录与另一个表中的每条记录作连接产生的结果)。一般N个表进行连接,需要至少N-1个连接条件,...
关于mybatis返回map是排序问题
 这样的情况下是无排序的 想要俺着查询的顺序来的话 换成
MySQL性能优化小记:MySQL子查询很慢的问题
今天碰到一个数据库问题,需要用到子查询,但尝试了一下发现它很慢: mysql> select * from abc_number_prop where number_id in (select number_id from abc_number_phone where phone = '82306839'); 为了节省篇幅,省略了输出内容,下同。 67 rows in
对于MySQL中的子查询的理解
每天记录一下自己的心得体会,今天写一下MySQL中的子查询,个人感觉子查询的难度比之前学的查询都比较难,可能是语句太多吧,对于初学者的难度会有一点,反正我第一次接触的时候是崩溃的,因为·代码有点多,因为内容比较多,所以小弟要是有讲的不到位的,希望各位在下面给出建议,好了,话不多说,我们先来建三张表 CREATE TABLE EMP( EMPNO INT, ENAM...
关于多行子查询中的空值问题,not null
在操作表查询时,发现一个问题,进行子查询时使用NOT  IN 的查询结果不存在: 如下的操作:    查询不是老板的员工:        select * from emp where                                       empno not in(select mager from emp );       这条语句执行的结果为空,但是从数据上来
相关子查询影响排序数据返回的排列
SELECT  * FROM    ( SELECT    row_number() OVER ( ORDER BY p.sjdate DESC ) AS rowid,                     ( ISNULL(p.total1, 0.00) * ISNULL(pi.hdcost, 0.00) ) AS hzSum,                     p.autoid,
mybatis批量修改报错子查询返回多行,但是在客户端执行却正常执行。
由于项目需要写了一个定时任务,用的kdb数据库(老大说这数据库写脚本不方便)。问题来了。下面sql  在客户端是可以正常执行的。     但是在java后台报错,用的mybatis。a.stop_time是number类型,start_date和end_date是timestamp类型。    求大神指点!...
MyBatis动态排序问题
MyBatis动态生成排序的问题 在使用MyBatis时加入来按指定字段进行排序
mybatis逆向工程中的多字段排序问题
在mybatis排序的时候遇到一个问题,那就是两个字段同时排序的时候只执行了最后一个排序的字段 我想要的排序结果是这样的 SELECT * FROM t_project_data ORDER BY confirm_project_status DESC , id ASC 以下是错误代码的演示 TProjectDataExample example = new TProjectDataExample...
mybatis中collection子查询注入参数为null
具体实现参照网上,但是可能遇到注入参数为null的情况,经过查阅及自己测试记录一下: 子查询的参数中,有之类,需要指定别名,通过 http://blog.csdn.net/mamba10/article/details/20927225 ,了解到设置注入参数时可以设置别名 collection property="projectList" column="{projectId=pr
MySQL高效分页:子查询分页
MySQL高效分页:子查询分页 正文:   一般MYSQL最基本的分页方式: select * from content order by id desc limit 0, 10 在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的问题就是确保使用了索引。随着数据量的增加,页数会越来越多,查看后几页的SQL就可能类似: select * from cont
用子查询解决分组查询问题
业务需求:在A中需要根据gid字段分组,并只查询到每个分组中最新(时间createDate)的数据。 1.先说说分组查询的局限,group by查询时只能查聚合函数和被分组的列,那么想要的数据很可能查不到。 2.用子查询解决 select * from A a1.createDate = (select MAX(a2.createDate) from A a2 where a2.g
MyBatis中添加对exists子查询的支持
2016-12-21 更新 已经加入GitHub托管: [url]https://github.com/leitelyaya/mybatis-3[/url] 注意3.2.x 另外已修复ForEach污染全局变量的问题 实际使用效果嘛,[b]临时表数据越少越好[/b],如果不少,请放弃此优化 特感谢这篇博文讲解参数使用:[url]http://blog.csdn.net/isea533/a...
mysl 子查询带来的性能问题
一个带有多个子查询的sql,性能非常慢。通过减少子查询改写后性能大幅度提升。原SQL&执行计划:SELECT t1.version_no, t3.instance_id FROM (SELECT v.version_no, v.version_id, v.message, v.state, v.start_time, v.end_time,
Mybatis resultMap灵活用法(使用子查询)
背景 查询广州每个景点的总流量,和每个景点每日流量 数据表 t_广州 唯一标识id 地点place 流量counts 日期date 1 动物园 100 ‘2018-11-11’ 2 动物园 200 ‘2018-11-12’ 3 植物园 100 ‘2018-11-11’ 需求 统计每个地点的总流量,和每天的流量 结果示意结构如下: { place: '动物园', al...
Oracle 子查询,按降序排列,取前n条
比如,有一个student 表:   id             student_name      1                                  s1 2                                  s2 03                                s3 04
实现mybatis关联 in查询
在平时的项目开发中我们很容易碰到这样的问题;我们当实现一个业务接口时;需要到多张数据库表中取出所要的信息,一般情况下我们回选择在DDL层直接发起一条关联查询的sql将所需的字段关联查出来。    最近公司的框架里引用另一种让开发者更方便的解决办法;相对我们通常的使用关联查询可能这种方法对查询性能稍稍若了点;先上代码。。。 /*** step 1.反射类添加 */ public abstract
mysql5.7子查询order by失效问题
问题:mysql5.7子查询order by失效 原因:在mysql5.7中,如果不加limit,系统会把order by优化掉。
mybatis查询嵌套之参数传递
今天花了一下午时间发现了mybatis的一个用法,就是查询嵌套传参的时候会把集合中的参数给“”用掉”,所谓用掉,就是作为参数传递给嵌套查询的参数不会在返回结果集中显示。解决办法就是做两个参数命不同的名字,一个用作查询嵌套的传递,另外一个用作结果集的返回。 上例子: SELECT BT.TERMINAL_SYS_NO as mtSysNo, MCA.TERMINAL_NO AS
mybatis动态排序问题:order by后的字段作为条件动态传入:${param}
在使用MyBatis解析xml进行排序的时候,遇见排序无效的问题! #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #{user_id},如果传入的值是111,那么解析成sql时的值为order by “111”, 如果传入的值是id,则解析成的sql为order by “id”。 $将传入的数据直接显示生成在sql中。如:order by ${use...
WITH AS 子查询
WITH AS短语,也叫做子查询部分(subquery factoring),是用来定义一个SQL片断,该SQL片断会被整个SQL语句所用到。 1.with子句的返回结果存到用户的临时表空间中,只做一次查询,反复使用,提高效率。 2.在同级select前有多个查询定义的时候,第1个用with,后面的不用with,并且用逗号隔开。 3.前面的with子句定义的查
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 大数据对于深度学习 对于python的学习体会