我在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中,运行的时候会报错
http://blog.csdn.net/zcwforali/article/details/72811397
楼主,报错图片看不了啊,请重发一下。
select t.* from(你的sql) t,我以前也是遇到类似问题
有个表没有sale_count这个字段
sale_count 这个要加上具体的表名,是哪个表里边的这个字段要写清楚才行。
再套一层 你这个sale_count 不在from的表中
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
用别名确定你要分组或排序的字段 ,还有确定字段是否存在