日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

MySQL聯表查詢基本操作之left-join常見的坑

瀏覽:31日期:2023-10-15 08:08:45

概述

對于中小體量的項目而言,聯表查詢是再常見不過的操作了,尤其是在做報表的時候。然而校對數據的時候,您發現坑了嗎?本篇文章就 mysql 常用聯表查詢復現常見的坑。

基礎環境

建表語句

DROP TABLE IF EXISTS `role`;CREATE TABLE `role` ( `id` int(11) NOT NULL AUTO_INCREMENT, `role_name` VARCHAR(50) DEFAULT NULL COMMENT ’角色名’, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’角色表’;insert into `role` VALUES(1, ’管理員’);insert into `role` VALUES(2, ’總經理’);insert into `role` VALUES(3, ’科長’);insert into `role` VALUES(4, ’組長’);DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `role_id` int(11) NOT NULL COMMENT ’角色id’, `user_name` VARCHAR(50) DEFAULT NULL COMMENT ’用戶名’, `sex` int(1) DEFAULT 0 COMMENT ’性別’, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’用戶表’;insert into `user` VALUES(1, 1, ’admin’, 1);insert into `user` VALUES(2, 2, ’王經理’, 1);insert into `user` VALUES(3, 2, ’李經理’, 2);insert into `user` VALUES(4, 2, ’張經理’, 2);insert into `user` VALUES(5, 3, ’王科長’, 1);insert into `user` VALUES(6, 3, ’李科長’, 1);insert into `user` VALUES(7, 3, ’呂科長’, 2);insert into `user` VALUES(8, 3, ’邢科長’, 1);insert into `user` VALUES(9, 4, ’范組長’, 2);insert into `user` VALUES(10, 4, ’趙組長’, 2);insert into `user` VALUES(11, 4, ’姬組長’, 1);

數據如下

mysql> select * from role;+----+-----------+| id | role_name |+----+-----------+| 1 | 管理員 || 2 | 總經理 || 3 | 科長 || 4 | 組長 |+----+-----------+4 rows in set (0.00 sec)mysql> select * from user;+----+---------+-----------+------+| id | role_id | user_name | sex |+----+---------+-----------+------+| 1 | 1 | admin | 1 || 2 | 2 | 王經理 | 1 || 3 | 2 | 李經理 | 2 || 4 | 2 | 張經理 | 2 || 5 | 3 | 王科長 | 1 || 6 | 3 | 李科長 | 1 || 7 | 3 | 呂科長 | 2 || 8 | 3 | 邢科長 | 1 || 9 | 4 | 范組長 | 2 || 10 | 4 | 趙組長 | 2 || 11 | 4 | 姬組長 | 1 |+----+---------+-----------+------+11 rows in set (0.00 sec)

基本業務

簡單信息報表: 查詢用戶信息

mysql> SELECT -> id, -> user_name AS ’姓名’, -> ( CASE WHEN sex = 1 THEN ’男’ WHEN sex = 2 THEN ’女’ ELSE ’未知’ END ) AS ’性別’ -> FROM -> USER;+----+-----------+--------+| id | 姓名 | 性別 |+----+-----------+--------+| 1 | admin | 男 || 2 | 王經理 | 男 || 3 | 李經理 | 女 || 4 | 張經理 | 女 || 5 | 王科長 | 男 || 6 | 李科長 | 男 || 7 | 呂科長 | 女 || 8 | 邢科長 | 男 || 9 | 范組長 | 女 || 10 | 趙組長 | 女 || 11 | 姬組長 | 男 |+----+-----------+--------+

查詢每個角色名稱及對應人員中女性數量

mysql> SELECT -> r.id, -> r.role_name AS role, -> count( u.sex ) AS sex -> FROM -> role r -> LEFT JOIN USER u ON r.id = u.role_id -> AND u.sex = 2 -> GROUP BY -> r.role_name -> ORDER BY -> r.id ASC;+----+-----------+-----+| id | role | sex |+----+-----------+-----+| 1 | 管理員 | 0 || 2 | 總經理 | 2 || 3 | 科長 | 1 || 4 | 組長 | 2 |+----+-----------+-----+4 rows in set (0.00 sec)

假如我們把性別過濾的條件改為 where 操作結果會怎么樣呢?

mysql> SELECT -> r.id, -> r.role_name AS role, -> count( u.sex ) AS sex -> FROM -> role r -> LEFT JOIN USER u ON r.id = u.role_id -> WHERE -> u.sex = 2 -> GROUP BY -> r.role_name -> ORDER BY -> r.id ASC;+----+-----------+-----+| id | role | sex |+----+-----------+-----+| 2 | 總經理 | 2 || 3 | 科長 | 1 || 4 | 組長 | 2 |+----+-----------+-----+3 rows in set (0.00 sec)

這里可以看到角色數據不完整了。

找出角色為總經理的員工數量

mysql> SELECT -> r.id, -> r.role_name AS role, -> count( u.sex ) AS sex -> FROM -> role r -> LEFT JOIN USER u ON r.id = u.role_id -> WHERE -> r.role_name = ’總經理’ -> GROUP BY -> r.role_name -> ORDER BY -> r.id ASC;+----+-----------+-----+| id | role | sex |+----+-----------+-----+| 2 | 總經理 | 3 |+----+-----------+-----+1 row in set (0.00 sec)

同樣將過濾條件由 where 改為 on

mysql> SELECT -> r.id, -> r.role_name AS role, -> count( u.sex ) AS sex -> FROM -> role r -> LEFT JOIN USER u ON r.id = u.role_id -> AND r.role_name = ’總經理’ -> GROUP BY -> r.role_name -> ORDER BY -> r.id ASC;+----+-----------+-----+| id | role | sex |+----+-----------+-----+| 1 | 管理員 | 0 || 2 | 總經理 | 3 || 3 | 科長 | 0 || 4 | 組長 | 0 |+----+-----------+-----+4 rows in set (0.00 sec)

這里可以看到數據多余了

總結

在 left join 語句中,左表過濾必須放 where 條件中,右表過濾必須放 on 條件中,這樣結果才能不多不少,剛剛好。

到此這篇關于MySQL聯表查詢基本操作之left-join常見坑的文章就介紹到這了,更多相關MySQL聯表查詢left-join內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
av高清不卡| 亚洲欧美日韩高清在线| 欧美一区影院| 奇米色欧美一区二区三区| 噜噜噜躁狠狠躁狠狠精品视频| 欧美日韩在线二区| 久久国产亚洲| 成人精品亚洲| 视频一区欧美精品| 日韩av在线播放网址| 日韩成人午夜精品| 亚洲综合色婷婷在线观看| 日韩中文字幕区一区有砖一区 | 中文字幕系列一区| 久久久久久久久丰满| 日韩午夜免费| 日韩欧美三区| 精品少妇一区| 国产国产精品| 日本vs亚洲vs韩国一区三区二区| 日日夜夜免费精品视频| 国产精品视频一区二区三区四蜜臂| 国产精品一区二区三区av麻| 欧美交a欧美精品喷水| 精品视频91| 亚洲va在线| 日韩精品永久网址| 欧美黑人巨大videos精品| 日韩精品亚洲专区在线观看| 国产精品一区二区精品| 日韩中文字幕高清在线观看| 国产伦一区二区三区| 日韩美女精品| 亚洲2区在线| 国产精品婷婷| 在线一区免费观看| 日韩午夜在线| 天堂成人免费av电影一区| 欧美日韩精品一区二区视频| 国语对白精品一区二区| 久久不见久久见免费视频7| 欧美亚洲色图校园春色| 日韩精品国产欧美| 欧美片网站免费| 欧美激情视频一区二区三区免费 | 久久精品免视看国产成人| 欧美日韩水蜜桃| 成人美女视频| 成人在线免费观看91| 日韩和欧美一区二区| 欧美日韩国产综合网| 国产精品s色| 亚洲天堂资源| 日韩精品诱惑一区?区三区| 国产精品一区二区三区av| 亚洲www啪成人一区二区| 午夜在线精品| 神马日本精品| 激情久久久久久| 成人av二区| 亚洲一区欧美| 日韩精品欧美成人高清一区二区| 人人精品人人爱| 日韩欧美另类中文字幕| 香蕉成人久久| 亚洲我射av| 欧美日韩99| 国产精品亚洲产品| 国产一区二区三区四区五区| 日本一区二区高清不卡| 国产一在线精品一区在线观看| av综合电影网站| 精品一区二区三区的国产在线观看| 亚洲欧美日韩国产一区| 亚洲视频国产精品| 91九色精品| 欧美男人天堂| 美女av一区| 精品视频91| 国产精品一卡| 国产毛片久久久| 国产黄色精品| 麻豆成人91精品二区三区| 成人影视亚洲图片在线| 亚洲精品国产偷自在线观看| 视频在线观看一区| 欧美片网站免费| 国产精品99久久精品| 亚洲欧洲一区二区天堂久久| 亚洲丝袜啪啪| 日本不良网站在线观看| 亚洲一级淫片| 欧美国产精品| 亚洲欧美日本国产专区一区| 日本不卡一二三区黄网| 韩日一区二区| 一区二区91| 久久久久久美女精品| 国产视频网站一区二区三区| 亚洲午夜黄色| 久久久精品国产**网站| 免费在线看一区| 91精品啪在线观看国产18| 午夜天堂精品久久久久| 欧美日韩在线二区| 久久中文字幕导航| 蜜臀久久99精品久久久久宅男| 超碰在线99| 亚洲精选久久| 99精品电影| 国产精品毛片久久| 国产亚洲一区二区三区啪| 国产亚洲网站| 久久精品中文| 亚洲综合电影| 九九久久国产| 欧美日韩a区| 中文字幕亚洲影视| 亚洲专区在线| 亚洲资源av| 极品裸体白嫩激情啪啪国产精品| 久久精品九色| 国产精品免费大片| 日韩精品午夜视频| 午夜日韩福利| 亚洲成人精选| 亚洲欧美视频| 日韩欧美美女在线观看| 欧美天堂在线| 美腿丝袜亚洲一区| 欧美丰满日韩| 伊人成人网在线看| 性欧美长视频| 国产欧美激情| 欧美午夜三级| 久久国产日韩欧美精品| 欧美自拍一区| 欧美日本三区| 精品黄色一级片| 青青久久av| 色在线视频观看| 欧美成人基地 | 在线 亚洲欧美在线综合一区| 一本一道久久a久久精品蜜桃| 亚洲在线电影| 欧美欧美黄在线二区| 国产精品久久久久久久久久久久久久久| 精品久久网站| 国产精品第十页| 国产精品中文字幕制服诱惑| 国产亚洲人成a在线v网站| 国产精品a级| 91精品国产乱码久久久久久久 | 亚洲欧美日韩国产一区二区| 日韩在线a电影| 国产一区二区三区免费在线| 久久久噜噜噜| 日韩av电影一区| 精品午夜久久| 美女被久久久| 久久精品二区亚洲w码| 91日韩欧美| 亚洲精品第一| 国产一区清纯| 国产欧美日韩| 国产精品日韩久久久| 欧美成人aaa| 中文不卡在线| 国产夫妻在线| 亚洲欧洲一区二区天堂久久| 国产精品久久久久久妇女| 久久xxxx精品视频| 日韩影院二区| 精品久久在线| 国产精品jk白丝蜜臀av小说| 视频在线观看国产精品| 电影91久久久| 97久久亚洲| 免费一区二区视频| 亚洲一区二区动漫| 免费观看久久av| 欧美日中文字幕| 日韩和的一区二在线| 日韩av二区| 色一区二区三区四区| 老司机免费视频一区二区| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲欧洲午夜| 99视频一区| 偷拍欧美精品| 亚洲精华国产欧美| 日韩在线欧美| 亚洲天堂黄色| 亚洲一区二区免费看| 久久高清免费观看| 久久午夜精品一区二区| 亚洲欧美日韩国产综合精品二区| 亚洲免费网址| 日韩在线观看一区二区三区| 亚洲精品在线国产|