Sql表自连接,数据库中查询没问题,Hibernate中查询有问题?
2015-09-24 10:30
176 查看
原先的SQL:
SELECT md.repertory,
md.mid,
md.status,
m.pic,
m.name,
m.selling_price,
m.vendor,
mp.property_value,
mp2.property_value AS gyzz, 这两个在数据库中查询时不一致,,但在Hibernate中查询出来结果一样
md.did,
md.id,
(CASE md.retail_price
WHEN NULL THEN 0.00
ELSE md.retail_price
END) AS retail_price
FROM yk_medicine_drugstore md
INNER JOIN yk_medicine m
ON m.id = md.mid
INNER JOIN yk_medicine_property_detail mp
ON mp.medicine_id = md.mid
AND mp.property_id = 6
INNER JOIN yk_medicine_property_detail mp2
ON mp2.medicine_id = md.mid
AND mp2.property_id = 17
WHERE md.did = 19
修改后的SQL:
sql="select md.repertory,md.mID,md.status," +
"m.pic,m.name,m.selling_price,m.vendor,mp.property_value," +
"concat('[',mp2.property_value)as gyzz,md.dID,md.id ," +
"cast(retail_price as decimal(8,2))" +
" from yk_medicine_drugstore md " +
"inner join yk_medicine m on m.id=md.mID " +
"inner join yk_medicine_property_detail mp " +
"on mp.medicine_id=md.mID and mp.property_id=6 " +
"inner join yk_medicine_property_detail mp2 " +
"on mp2.medicine_id=md.mID and mp2.property_id=17 "
+"where md.dID=19";
SELECT md.repertory,
md.mid,
md.status,
m.pic,
m.name,
m.selling_price,
m.vendor,
mp.property_value,
mp2.property_value AS gyzz, 这两个在数据库中查询时不一致,,但在Hibernate中查询出来结果一样
md.did,
md.id,
(CASE md.retail_price
WHEN NULL THEN 0.00
ELSE md.retail_price
END) AS retail_price
FROM yk_medicine_drugstore md
INNER JOIN yk_medicine m
ON m.id = md.mid
INNER JOIN yk_medicine_property_detail mp
ON mp.medicine_id = md.mid
AND mp.property_id = 6
INNER JOIN yk_medicine_property_detail mp2
ON mp2.medicine_id = md.mid
AND mp2.property_id = 17
WHERE md.did = 19
修改后的SQL:
sql="select md.repertory,md.mID,md.status," +
"m.pic,m.name,m.selling_price,m.vendor,mp.property_value," +
"concat('[',mp2.property_value)as gyzz,md.dID,md.id ," +
"cast(retail_price as decimal(8,2))" +
" from yk_medicine_drugstore md " +
"inner join yk_medicine m on m.id=md.mID " +
"inner join yk_medicine_property_detail mp " +
"on mp.medicine_id=md.mID and mp.property_id=6 " +
"inner join yk_medicine_property_detail mp2 " +
"on mp2.medicine_id=md.mID and mp2.property_id=17 "
+"where md.dID=19";
相关文章推荐
- SQL Server 通配符 Wildcard character
- Spark SQL官方文档阅读--待完善
- Sentinel-Redis高可用方案(二):主从切换
- Spark SQL官方文档阅读--待完善
- mysql正则表达式
- Sql表注释
- Sql表注释
- Sentinel-Redis高可用方案(一):主从复制
- Sqlserver列出所有数据库名,表名,字段名
- [IOS 开发] sqlite 使用事务操作数据库
- redis监控软件,redis-stat安装
- Menu控件+SQLServer实现动态多级菜单
- sql 触发器 NTEXT TEXT IMAGE 无法写入的问题 二进制来做
- Dave-oracle
- SSD 下的 MySQL IO 优化
- oracle 11g oem的建立方法
- Mysql命令alter add:增加表的字段
- 经典SQL语句大全
- Mysql查看进程
- mysql常见错误