由于之前没有怎么接触多表查询今天搞了很久才干掉这个问题,做个记录。
现在有三张表,这三张表没有关联。要统计三个表的行数。
SELECT COUNT(id) FROM ( SELECT id,name FROM psm_lesson WHERE 1=1 <if test="name != null"> AND psm_lesson.name like CONCAT('%', #{name}, '%') </if> UNION ALL SELECT id,service_title FROM psm_service_center WHERE 1=1 <if test="name != null"> AND psm_service_center.service_title like CONCAT('%', #{name}, '%') </if> UNION ALL SELECT id,name FROM psm_content WHERE 1=1 <if test="name != null"> AND psm_content.name like CONCAT('%', #{name}, '%') </if> ) AS p注意:1.union需要几个表查询的字段数要相同,所以只查需要的字段就好了。
2.在最后要sa一个别名 虽然没啥用但是必须的。