成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

【MySQL筆記】七種JOIN的SQL

數據庫 MySQL
本文主要是作者總結的關于七種JOIN的SQL的MySQL筆記,包括左連接(LEFT JOIN)、右連接(RIGHT JOIN)、內連接(INNER JOIN)、左獨有連接(LEFT JOIN)等。

準備數據

以一個簡易問答系統為例,包括問題表和問題所屬標簽,問題表如下:

  1. CREATE TABLE `t_qa` ( 
  2.   `id` bigint(20) NOT NULL AUTO_INCREMENT, 
  3.   `title` varchar(200) NOT NULL DEFAULT '' COMMENT '標題'
  4.   `answer_count` int(5) unsigned NOT NULL DEFAULT '0' COMMENT '回答個數'
  5.   `label_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '標簽id'
  6.   `create_by` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '創(chuàng)建人'
  7.   `create_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '創(chuàng)建時間'
  8.   `update_by` bigint(20) unsigned DEFAULT NULL COMMENT '更新人'
  9.   `update_date` datetime DEFAULT NULL COMMENT '更新時間'
  10.   `del_flag` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '0:不刪除,1:刪除'
  11.   PRIMARY KEY (`id`) 
  12. ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
  13.  
  14. INSERT INTO `t_qa` (`id`, `title`, `answer_count`, `label_id`, `create_by`, `create_date`, `update_by`, `update_date`, `del_flag`) 
  15. VALUES 
  16.     (1, 'Java是什么?', 5, 1, 0, '2017-08-24 17:43:53', 0, '2017-08-24 17:43:53', 0), 
  17.     (2, 'PHP是什么?', 4, 2, 0, '2017-08-24 17:43:53', 0, '2017-08-24 17:43:53', 0), 
  18.     (3, '前端是什么?', 3, 3, 0, '2017-08-24 17:43:53', 0, '2017-08-24 17:43:53', 0), 
  19.     (4, 'nodejs是什么?', 2, 0, 0, '2017-08-24 17:43:53', 0, '2017-08-24 17:43:53', 0), 
  20.     (5, 'css是什么?', 1, 0, 0, '2017-08-24 17:43:53', 0, '2017-08-24 17:43:53', 0), 
  21.     (6, 'JavaScript是什么?', 0, 0, 0, '2017-08-24 17:43:53', 0, '2017-08-24 17:43:53', 0);  

標簽表如下:

  1. CREATE TABLE `t_label` ( 
  2.   `id` bigint(20) NOT NULL AUTO_INCREMENT, 
  3.   `namevarchar(50) NOT NULL DEFAULT '' COMMENT '名稱'
  4.   `create_by` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '創(chuàng)建人'
  5.   `create_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '創(chuàng)建時間'
  6.   `update_by` bigint(20) unsigned DEFAULT NULL COMMENT '更新人'
  7.   `update_date` datetime DEFAULT NULL COMMENT '更新時間'
  8.   `del_flag` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '0:不刪除,1:刪除'
  9.   PRIMARY KEY (`id`) 
  10. ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
  11.  
  12. INSERT INTO `t_label` (`id`, `name`, `create_by`, `create_date`, `update_by`, `update_date`, `del_flag`) 
  13. VALUES 
  14.     (1, 'java', 0, '2017-08-24 17:43:53', 0, '2017-08-24 17:43:53', 0), 
  15.     (2, 'php', 0, '2017-08-24 17:43:53', 0, '2017-08-24 17:43:53', 0), 
  16.     (3, '大前端', 0, '2017-08-24 17:43:53', 0, '2017-08-24 17:43:53', 0), 
  17.     (4, 'mybatis', 0, '2017-08-24 17:43:53', 0, '2017-08-24 17:43:53', 0), 
  18.     (5, 'python', 0, '2017-08-24 17:43:53', 0, '2017-08-24 17:43:53', 0), 
  19.     (6, '多線程', 0, '2017-08-24 17:43:53', 0, '2017-08-24 17:43:53', 0);  

一、左連接(LEFT JOIN)

 

問題 回答個數 標簽id 標簽名稱
Java是什么? 5 1 java
PHP是什么? 4 2 php
前端是什么? 3 3 大前端
nodejs是什么? 2 NULL NULL
css是什么? 1 NULL NULL
JavaScript是什么? 1 NULL NULL

    

  1. SELECT  
  2.     tq.title, tq.answer_count, tl.id, tl.name 
  3. FROM  
  4.     t_qa tq LEFT JOIN t_label tl ON tq.label_id = tl.id  

二、右連接(RIGHT JOIN)

 

問題 回答個數 標簽id 標簽名稱
Java是什么? 5 1 java
PHP是什么? 4 2 php
前端是什么? 3 3 大前端
NULL NULL 4 mybatis
NULL NULL 5 python
NULL NULL 6 多線程

 

  1. SELECT  
  2.    tq.title, tq.answer_count, tl.id, tl.name 
  3. FROM  
  4.     t_qa tq RIGHT JOIN t_label tl ON tq.label_id = tl.id  

三、內連接(INNER JOIN)

 

問題 回答個數 標簽id 標簽名稱
Java是什么? 5 1 java
PHP是什么? 4 2 php
前端是什么? 3 3 大前端

   

  1. SELECT  
  2.     tq.title, tq.answer_count, tl.id, tl.name 
  3. FROM  
  4.     t_qa tq INNER JOIN t_label tl ON tq.label_id = tl.id  

四、左獨有連接(LEFT JOIN)

 

問題 回答個數 標簽id 標簽名稱
nodejs是什么? 2 NULL NULL
css是什么? 1 NULL NULL
JavaScript是什么? 0 NULL NULL

    

  1. SELECT  
  2.     tq.title, tq.answer_count, tl.id, tl.name 
  3. FROM  
  4.     t_qa tq LEFT JOIN t_label tl ON tq.label_id = tl.id 
  5. WHERE 
  6.     tl.id IS NULL  

五、右獨有連接(RIGHT JOIN)

 

問題 回答個數 標簽id 標簽名稱
NULL NULL 4 mybatis
NULL NULL 5 python
NULL NULL 6 多線程

    

  1. SELECT  
  2.     tq.title, tq.answer_count, tl.id, tl.name 
  3. FROM  
  4.     t_qa tq RIGHT JOIN t_label tl ON tq.label_id = tl.id 
  5. WHERE 
  6.     tq.label_id IS NULL  

六、全連接(FULL JOIN)

 

由于MySQL不支持FULL OUTER JOIN,所以如果有全連接需求時,可用表達式:full outer join = left outer join UNION right outer join來實現。

問題 回答個數 標簽id 標簽名稱
Java是什么? 5 1 java
PHP是什么? 4 2 php
前端是什么? 3 3 大前端
nodejs是什么? 2 NULL NULL
css是什么? 1 NULL NULL
JavaScript是什么? 0 NULL NULL
NULL NULL 4 mybatis
NULL NULL 5 python
NULL NULL 6 多線程

    

  1. SELECT tq.title, tq.answer_count, tl.id, tl.name FROM t_qa tq LEFT JOIN t_label tl ON tq.label_id = tl.id 
  2. UNION 
  3. SELECT tq.title, tq.answer_count, tl.id, tl.name FROM t_qa tq RIGHT JOIN t_label tl ON tq.label_id = tl.id   

七、全連接去交集(FULL JOIN)

 

問題 回答個數 標簽id 標簽名稱
nodejs是什么? 2 NULL NULL
css是什么? 1 NULL NULL
JavaScript是什么? 0 NULL NULL
NULL NULL 4 mybatis
NULL NULL 5 python
NULL NULL 6 多線程

    

  1. SELECT tq.title, tq.answer_count, tl.id, tl.name FROM t_qa tq LEFT JOIN t_label tl ON tq.label_id = tl.id WHERE tl.id IS NULL 
  2. UNION 
  3. SELECT tq.title, tq.answer_count, tl.id, tl.name FROM t_qa tq RIGHT JOIN t_label tl ON tq.label_id = tl.id WHERE tq.label_id IS NULL  
責任編輯:龐桂玉 來源: segmentfault
相關推薦

2010-10-15 10:02:01

Mysql表類型

2025-05-13 08:20:58

2025-01-21 08:00:00

限流微服務算法

2022-05-10 08:08:01

find命令Linux

2020-01-14 08:00:00

.NET緩存編程語言

2017-06-14 16:44:15

JavaScript原型模式對象

2017-06-02 09:52:50

2021-07-16 09:55:46

數據工具軟件

2010-08-31 10:57:36

2019-09-06 09:00:00

開發(fā)技能代碼

2020-01-14 11:09:36

CIO IT技術

2013-01-07 10:14:06

JavaJava枚舉

2025-01-15 10:46:23

開發(fā)JavaScript集合

2010-06-08 09:49:45

UML元件

2023-12-22 14:27:30

2011-03-14 10:46:03

2019-10-29 06:30:31

告警疲勞網絡安全安全風險

2010-09-16 17:47:49

2016-09-28 20:05:22

2011-03-24 14:45:48

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩av在线免费 | 一区二区三区久久久 | 国产成人福利视频在线观看 | 久久国产欧美日韩精品 | 一区在线视频 | 成人精品一区二区三区四区 | 亚洲国产一区二区三区在线观看 | 国产一区二区久久 | 福利社午夜影院 | 亚洲一区二区三区在线免费 | 亚洲精品久久久 | 欧美黑人国产人伦爽爽爽 | 午夜精品久久久久久久99黑人 | 精国产品一区二区三区 | 91精品国产一区二区在线观看 | 国产成人精品一区 | 国产中文字幕网 | 日本啊v在线 | 亚洲一区二区视频 | 免费视频一区二区三区在线观看 | av影音资源| 天天干狠狠操 | 日韩色在线 | 精品日本中文字幕 | av 一区二区三区 | 99热视 | 色伊人| 高清久久| 人人色视频 | 91大片| 国产一区二区在线免费观看 | 国产免费一区二区三区免费视频 | 国产精品一区二区三区四区五区 | 国产亚洲精品久久午夜玫瑰园 | 精品视频一区二区 | 国产成人精品一区二区三区在线 | 久久狠狠 | 亚洲成人免费在线观看 | 亚洲成人精品在线 | 日韩高清中文字幕 | 日韩三级电影一区二区 |