一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - Mysql 如何實現多張無關聯表查詢數據并分頁

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

2021-08-12 20:11青春荒蕪了流年 Mysql

這篇文章主要介紹了Mysql 實現多張無關聯表查詢數據并分頁的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

mysql 多張無關聯表查詢數據并分頁

功能需求

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

數據庫表結構

水果表:

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

堅果表:

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

飲料表:

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

數據庫隨便建的,重在方法。

主要使用union all 操作符

union all 操作符用于合并兩個或多個 select 語句的結果集。

請注意,union all內部的 select 語句必須擁有相同數量的列。列也必須擁有相似的數據類型。同時,每條 select 語句中的列的順序必須相同 ; 另外,union all結果集中的列名總是等于 union all中第一個 select 語句中的列名。

?
1
2
3
4
5
6
7
8
9
10
// 詳細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文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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);

分頁錯誤寫法(主查詢員工表)

?
1
2
3
4
5
6
7
select * from tbl_emp e
left join
tbl_dept d
 
on d.dept_id  = e.d_id
 
limit 1,10

使用子查詢方式解決問題

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/qq_38159467/article/details/85015559

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产伦码精品一区二区 | 狠狠夜夜久久日日91av | 亚洲欧美一级夜夜爽w | 亚洲国产福利精品一区二区 | 国产男女乱淫真视频全程播放 | 狠狠干快播 | 麻豆最新 | 国产亚洲精品aaa大片 | 999热在线精品观看全部 | 亚洲看片lutube在线入口 | 亚洲欧美日韩国产一区图片 | 国产微拍精品一区 | 果冻传媒天美传媒乌鸦传媒 | 好舒服好爽再快点视频 | 精品午夜久久网成年网 | 91精品啪在线观看国产线免费 | 三级网站午夜三级 | www.国产一区二区三区 | 男人的j进入女人的j免费 | 亚洲毛片基地 | 欧美一级久久久久久久大片 | 欧美一区不卡二区不卡三区 | 痴mu动漫成年动漫在线观看 | 污小说| 久久不卡免费视频 | 日本黄色大片免费观看 | 欧美大片一区二区三区 | 国产精品久久久久久福利 | 欧美亚洲国产综合在线 | 99re8在这里只有精品23 | 天美网站传媒入口网址 | 欧美1区| 国产色视频网站 | 色偷偷91久久综合噜噜噜 | 我被黑人彻底征服的全文 | 沉香如屑西瓜视频免费观看完整版 | 牛牛在线观看 | 青青操在线播放 | 欧美添下面视频免费观看 | xxxxxx日本处大片免费看 | 古装一级无遮挡毛片免费观看 |