mybatis union查询 只能查出前一部分,后一部分查不出来 30
SELECTt_appad.pk_appad,t_appad.category,t_appad.price,t_appad.activeFROMt_appadINNERJ...
SELECT
t_appad.pk_appad,
t_appad.category,
t_appad.price,
t_appad.active
FROM
t_appad
INNER JOIN t_scope ON t_appad.fk_scope = t_scope.pk_scope
where t_appad.pk_appad=1
)
UNION ALL
(
SELECT
t_appad.pk_appad,
t_appad.category,
t_appad.price,
t_appad.active
FROM
t_appad
INNER JOIN t_scope ON t_appad.fk_scope = t_scope.pk_scope
where t_appad.pk_appad=2
)
这个是个例子,取出pk_appad=1的和pk_appad=2的数据,实际的需求比较复杂,这个sql语句在mysql中执行没有问题,但是在mybatis里执行就只取出了pk_appad=1的数据,pk_appad=2的数据没有出来,求教是什么情况 展开
t_appad.pk_appad,
t_appad.category,
t_appad.price,
t_appad.active
FROM
t_appad
INNER JOIN t_scope ON t_appad.fk_scope = t_scope.pk_scope
where t_appad.pk_appad=1
)
UNION ALL
(
SELECT
t_appad.pk_appad,
t_appad.category,
t_appad.price,
t_appad.active
FROM
t_appad
INNER JOIN t_scope ON t_appad.fk_scope = t_scope.pk_scope
where t_appad.pk_appad=2
)
这个是个例子,取出pk_appad=1的和pk_appad=2的数据,实际的需求比较复杂,这个sql语句在mysql中执行没有问题,但是在mybatis里执行就只取出了pk_appad=1的数据,pk_appad=2的数据没有出来,求教是什么情况 展开
1个回答
2018-05-15 · 知道合伙人养生行家
关注
展开全部
如果你是一个专业的开发人员不该写出这种语句的,你使用一个简单的in就可以了;
再说mybatis中除了insert会写到union,其他情况下是不该用到的,效率太低。
还有,我想知道你用什么类型来接收mybatis返回的这些数据的,其实mybatis提供了封装,可以直接返回一个t_appad类型的,你根本无需在配置文件里写如此之复杂的SQL语句。
mybatis是通过配置文件中SQL语句的key去让数据库执行对应的SQL语句的,key是由官方定义的,尽量不要写这种深奥复杂的SQL,谁知道有没有这种key定义呢。
放弃这个方法,简化的SQL语句才是解决这个问题的最好方法。
再说mybatis中除了insert会写到union,其他情况下是不该用到的,效率太低。
还有,我想知道你用什么类型来接收mybatis返回的这些数据的,其实mybatis提供了封装,可以直接返回一个t_appad类型的,你根本无需在配置文件里写如此之复杂的SQL语句。
mybatis是通过配置文件中SQL语句的key去让数据库执行对应的SQL语句的,key是由官方定义的,尽量不要写这种深奥复杂的SQL,谁知道有没有这种key定义呢。
放弃这个方法,简化的SQL语句才是解决这个问题的最好方法。
追问
能不能认真点
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询