色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

Mysql 如何實現多張無關聯表查詢數據并分頁

瀏覽:4日期:2023-10-02 09:29:41
Mysql 多張無關聯表查詢數據并分頁功能需求

在三張沒有主外鍵關聯的表中取出自己想要的數據,并且分頁。

數據庫表結構

水果表:

Mysql 如何實現多張無關聯表查詢數據并分頁

堅果表:

Mysql 如何實現多張無關聯表查詢數據并分頁

飲料表:

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為表的別名最終結果

Mysql 如何實現多張無關聯表查詢數據并分頁

mysql多表聯合查詢時出現的分頁問題的解決mysql一對多分頁問題

部門表:tbl_dept

員工表: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 *FROMtbl_emp eLEFT JOIN tbl_dept dON d.dept_id = e.d_idGROUP BY e.d_idLIMIT 1,10 ) e LEFT JOIN tbl_dept dON d.dept_id = e.d_id

下面代碼與之無關 僅為備份

SELECTft.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 ( SELECTf.id,f.partner_id ,f.code ,f.end_update_date ,f.name ,f.type ,f.area ,f.is_default ,f.is_del,f.create_dateFROMbus_freight_template fLEFT JOIN bus_freight_provice pON f.id = p.template_idWHERE f.code = p.codeAND f.code = #[code]GROUP BY f.idLIMIT #{startPage},#{pageSize} ) ft LEFT JOIN bus_freight_provice fpON 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

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 国产在线观看成人免费视频 | 亚洲视屏在线观看 | 中文字幕中文字幕中中文 | 在线观看免费毛片 | 国产福利精品在线观看 | 亚洲波多野结衣日韩在线 | 中文字幕一区二区三区亚洲精品 | 特黄特级a级黄毛片免费观看多人 | 日本vs欧美一区二区三区 | 欧美一级毛片欧美一级成人毛片 | 日韩一级黄色毛片 | 久久91精品国产91 | 巨大热杵在腿间进进出出视频 | 女在床上被男的插爽叫视频 | 亚洲男人的天堂视频 | 成人精品久久 | 午夜美女影院 | 欧美成人三级视频 | 久久黄色影院 | 黄色一级网址 | 精品成人在线视频 | 久久99亚洲精品久久 | 欧美成人午夜在线全部免费 | 99r精品视频| 综合欧美日韩一区二区三区 | 国产精品天天爽夜夜欢张柏芝 | 另类一区二区三区 | 国产性较精品视频免费 | 在线看欧美日韩中文字幕 | 免费一级特黄a | 国产成人91高清精品免费 | 日本a级特黄三级三级三级 日本a一级片 | 日本道在线播放 | 国产成人精品日本亚洲语音2 | 亚洲精品欧美精品国产精品 | 成人午夜亚洲影视在线观看 | 成人网18免费看 | 免费看一级欧美毛片视频 | 亚洲日本高清成人aⅴ片 | 99久久精品国产国产毛片 | 大片在线播放日本一级毛片 |