久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL中七種JOIN的SQL是怎樣的

共計(jì) 4284 個(gè)字符,預(yù)計(jì)需要花費(fèi) 11 分鐘才能閱讀完成。

這篇文章將為大家詳細(xì)講解有關(guān) MySQL 中七種 JOIN 的 SQL 是怎樣的,文章內(nèi)容質(zhì)量較高,因此丸趣 TV 小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

準(zhǔn)備數(shù)據(jù)

以一個(gè)簡(jiǎn)易問答系統(tǒng)為例,包括問題表和問題所屬標(biāo)簽,問題表如下:

CREATE TABLE `t_qa` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `title` varchar(200) NOT NULL DEFAULT   COMMENT  標(biāo)題 , `answer_count` int(5) unsigned NOT NULL DEFAULT  0  COMMENT  回答個(gè)數(shù) , `label_id` bigint(20) unsigned NOT NULL DEFAULT  0  COMMENT  標(biāo)簽 id , `create_by` bigint(20) unsigned NOT NULL DEFAULT  0  COMMENT  創(chuàng)建人 , `create_date` datetime NOT NULL DEFAULT  0000-00-00 00:00:00  COMMENT  創(chuàng)建時(shí)間 , `update_by` bigint(20) unsigned DEFAULT NULL COMMENT  更新人 , `update_date` datetime DEFAULT NULL COMMENT  更新時(shí)間 , `del_flag` tinyint(1) unsigned NOT NULL DEFAULT  0  COMMENT  0:不刪除,1:刪除 , PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `t_qa` (`id`, `title`, `answer_count`, `label_id`, `create_by`, `create_date`, `update_by`, `update_date`, `del_flag`) VALUES (1,  Java 是什么?, 5, 1, 0,  2017-08-24 17:43:53 , 0,  2017-08-24 17:43:53 , 0), (2,  PHP 是什么?, 4, 2, 0,  2017-08-24 17:43:53 , 0,  2017-08-24 17:43:53 , 0), (3,  前端是什么?, 3, 3, 0,  2017-08-24 17:43:53 , 0,  2017-08-24 17:43:53 , 0), (4,  nodejs 是什么?, 2, 0, 0,  2017-08-24 17:43:53 , 0,  2017-08-24 17:43:53 , 0), (5,  css 是什么?, 1, 0, 0,  2017-08-24 17:43:53 , 0,  2017-08-24 17:43:53 , 0), (6,  JavaScript 是什么?, 0, 0, 0,  2017-08-24 17:43:53 , 0,  2017-08-24 17:43:53 , 0);

標(biāo)簽表如下:

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

一、左連接 (LEFT JOIN)

問題回答個(gè)數(shù)標(biāo)簽 id 標(biāo)簽名稱 Java 是什么?51javaPHP 是什么?42php 前端是什么?33 大前端 nodejs 是什么?2NULLNULLcss 是什么?1NULLNULLJavaScript 是什么?1NULLNULL

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

二、右連接 (RIGHT JOIN)

問題回答個(gè)數(shù)標(biāo)簽 id 標(biāo)簽名稱 Java 是什么?51javaPHP 是什么?42php 前端是什么?33 大前端 NULLNULL4mybatisNULLNULL5pythonNULLNULL6 多線程

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

三、內(nèi)連接 (INNER JOIN)

問題回答個(gè)數(shù)標(biāo)簽 id 標(biāo)簽名稱 Java 是什么?51javaPHP 是什么?42php 前端是什么?33 大前端

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

四、左獨(dú)有連接 (LEFT JOIN)

問題回答個(gè)數(shù)標(biāo)簽 id 標(biāo)簽名稱 nodejs 是什么?2NULLNULLcss 是什么?1NULLNULLJavaScript 是什么?0NULLNULL

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

五、右獨(dú)有連接 (RIGHT JOIN)

問題回答個(gè)數(shù)標(biāo)簽 id 標(biāo)簽名稱 NULLNULL4mybatisNULLNULL5pythonNULLNULL6 多線程

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

六、全連接 (FULL JOIN)

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

問題回答個(gè)數(shù)標(biāo)簽 id 標(biāo)簽名稱 Java 是什么?51javaPHP 是什么?42php 前端是什么?33 大前端 nodejs 是什么?2NULLNULLcss 是什么?1NULLNULLJavaScript 是什么?0NULLNULLNULLNULL4mybatisNULLNULL5pythonNULLNULL6 多線程

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 UNION 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)

問題回答個(gè)數(shù)標(biāo)簽 id 標(biāo)簽名稱 nodejs 是什么?2NULLNULLcss 是什么?1NULLNULLJavaScript 是什么?0NULLNULLNULLNULL4mybatisNULLNULL5pythonNULLNULL6 多線程

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 UNION 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

關(guān)于 MySQL 中七種 JOIN 的 SQL 是怎樣的就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-19發(fā)表,共計(jì)4284字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 珠海市| 奉贤区| 和政县| 青龙| 湖南省| 响水县| 辉南县| 瓦房店市| 天台县| 海丰县| 新民市| 涟水县| 马山县| 甘孜| 平定县| 兴海县| 和静县| 沅江市| 乐业县| 乡宁县| 叙永县| 乌海市| 招远市| 台东市| 卫辉市| 固始县| 汝阳县| 城固县| 盐亭县| 班玛县| 茶陵县| 莲花县| 龙岩市| 镇安县| 昭平县| 冀州市| 阜南县| 海晏县| 库伦旗| 阿拉善盟| 怀集县|