Mysql 多张无关联表查询数据并分页

功能需求

在三张没有主外键关联的表中取出自己想要的数据,并且分页。

数据库表结构

水果表:

在这里插入图片描述

坚果表:

在这里插入图片描述

饮料表:

在这里插入图片描述

数据库随便建的,重在方法。

主要使用UNION ALL 操作符

UNION ALL 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION ALL内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同 ; 另外,UNION ALL结果集中的列名总是等于 UNION ALL中第一个 SELECT 语句中的列名。

// 详细sql语句select * FROM((select fid,fname,price,type from fruits)UNION ALL(select nid,name,price,6 as type from nut)UNION ALL(select did,dname,price,7 as type from drinks)) as fnd limit 0,10     -----fnd为表的别名

员工表:tbl_emp

数据库sql文件

 CREATE DATABASE /*!32312 IF NOT EXISTS*/`ssm-crud` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `ssm-crud`; /*Table structure for table `tbl_dept` */ DROP TABLE IF EXISTS `tbl_dept`; CREATE TABLE `tbl_dept` (  `dept_id` int(11) NOT NULL AUTO_INCREMENT,  `dept_name` varchar(255) DEFAULT NULL,  PRIMARY KEY (`dept_id`)) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; /*Data for the table `tbl_dept` */ insert  into `tbl_dept`(`dept_id`,`dept_name`) values (1,'技术部'),(2,'业务部'),(6,'销售部'),(7,'人事部'); /*Table structure for table `tbl_emp` */ DROP TABLE IF EXISTS `tbl_emp`; CREATE TABLE `tbl_emp` (  `emp_id` int(11) NOT NULL AUTO_INCREMENT,  `emp_name` varchar(255) DEFAULT NULL,  `emp_gender` char(1) DEFAULT NULL,  `emp_email` varchar(255) DEFAULT NULL,  `d_id` int(11) DEFAULT NULL,  PRIMARY KEY (`emp_id`),  KEY `FK_tbl_emp` (`d_id`),  CONSTRAINT `FK_tbl_emp` FOREIGN KEY (`d_id`) REFERENCES `tbl_dept` (`dept_id`)) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8; /*Data for the table `tbl_emp` */ insert  into `tbl_emp`(`emp_id`,`emp_name`,`emp_gender`,`emp_email`,`d_id`) values (1,'xiaoshen','2',NULL,6),(4,'晓明','1',NULL,1),(5,'xiaohong','2',NULL,2),(6,'xiaohei','2',NULL,6),(7,'xiaozhang','1',NULL,1),(8,'xiaogao','1',NULL,1),(9,'xiaohua','1',NULL,1),(10,'xiaoyan','2',NULL,1),(11,'xiaohai','2',NULL,2),(12,'xiaoqiang','1',NULL,6),(13,'xiaoqi','2',NULL,7);
SELECT * FROM tbl_emp eLEFT JOIN tbl_dept d ON d.dept_id  = e.d_id LIMIT 1,10
SELECT        *    FROM     (       SELECT       *        FROM        tbl_emp e        LEFT JOIN     tbl_dept d        ON d.dept_id  = e.d_id                GROUP BY e.d_id        LIMIT 1,10      ) e       LEFT JOIN tbl_dept d        ON d.dept_id  = e.d_id
SELECT        ft.id,        ft.partner_id AS partnerId,        ft.code ,        ft.end_update_date AS  endUpdateDate,        ft.name ,        ft.type ,        ft.area ,        ft.is_default AS  isDefault,        fp.id fpId,        fp.shop_id AS fpShopId  ,        fp.provice_id AS fpProviceId ,        fp.provice_name AS fpProviceName ,        fp.start_num  AS fpStartNum ,        fp.start_fee  AS fpStartFee ,        fp.increase_num AS fpIncreaseNum ,        fp.increase_fee AS fpIncreaseFee ,        fp.code AS fpCode ,        fp.provice_text AS  fpProviceText ,        fp.template_id AS fpTemplateId    FROM     (       SELECT        f.id,        f.partner_id ,        f.code ,        f.end_update_date  ,        f.name ,        f.type ,        f.area ,        f.is_default ,        f.is_del,        f.create_date        FROM        bus_freight_template f        LEFT JOIN bus_freight_provice p        ON f.id = p.template_id        WHERE f.code = p.code        AND f.code = #[code]        GROUP BY f.id        LIMIT #{startPage},#{pageSize}      ) ft       LEFT JOIN bus_freight_provice fp        ON ft.id = fp.template_id    WHERE ft.code = fp.code      AND fp.template_id IS NOT NULL      AND ft.code =  #[code]      AND fp.is_del = '0'      AND ft.is_del = '0'       order by ft.create_date desc

更多相关文章

  1. android分页查询获取系统联系人信息
  2. Android入门教程(三十一)------SQLite分页读取
  3. android ListView的分段显示、分页显示(附源码)
  4. android左右滑动加载分页以及动态加载数据
  5. Android(安卓)listview怎么实现滚动分页
  6. android如何实现开机自动启动Service或app
  7. Android(安卓)ListView专题之十二 分页不同的解决方案
  8. Android分页控件xlistview
  9. android中滑动SQLite数据库分页加载

随机推荐

  1. Android 短信 彩信 wap push的接收
  2. 最新Android ADT, SDK, SDK_tool等官方下
  3. android sms发送、接收及格式
  4. Android布局
  5. [置顶] Android(安卓)性能优化(一)内存篇
  6. Android 布局属性大全
  7. Android SDK更新以及ADT更新出现问题的解
  8. SeekBar自定义
  9. 把TextView中的文字添加阴影效果及Style
  10. android开发,修改默认界面的背景色