在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

MySQL中七种JOIN的SQL是怎样的

110次阅读
没有评论

共计 4284 个字符,预计需要花费 11 分钟才能阅读完成。

这篇文章将为大家详细讲解有关 MySQL 中七种 JOIN 的 SQL 是怎样的,文章内容质量较高,因此丸趣 TV 小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

准备数据

以一个简易问答系统为例,包括问题表和问题所属标签,问题表如下:

CREATE TABLE `t_qa` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `title` varchar(200) NOT NULL DEFAULT   COMMENT  标题 , `answer_count` int(5) unsigned NOT NULL DEFAULT  0  COMMENT  回答个数 , `label_id` bigint(20) unsigned NOT NULL DEFAULT  0  COMMENT  标签 id , `create_by` bigint(20) unsigned NOT NULL DEFAULT  0  COMMENT  创建人 , `create_date` datetime NOT NULL DEFAULT  0000-00-00 00:00:00  COMMENT  创建时间 , `update_by` bigint(20) unsigned DEFAULT NULL COMMENT  更新人 , `update_date` datetime DEFAULT NULL COMMENT  更新时间 , `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);

标签表如下:

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  创建人 , `create_date` datetime NOT NULL DEFAULT  0000-00-00 00:00:00  COMMENT  创建时间 , `update_by` bigint(20) unsigned DEFAULT NULL COMMENT  更新人 , `update_date` datetime DEFAULT NULL COMMENT  更新时间 , `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)

问题回答个数标签 id 标签名称 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)

问题回答个数标签 id 标签名称 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

三、内连接 (INNER JOIN)

问题回答个数标签 id 标签名称 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

四、左独有连接 (LEFT JOIN)

问题回答个数标签 id 标签名称 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

五、右独有连接 (RIGHT JOIN)

问题回答个数标签 id 标签名称 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,所以如果有全连接需求时,可用表达式:full outer join = left outer join  UNION right outer join 来实现。

问题回答个数标签 id 标签名称 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)

问题回答个数标签 id 标签名称 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

关于 MySQL 中七种 JOIN 的 SQL 是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-19发表,共计4284字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 四虎影视库国产精品一区 | 久草热线 | 欧美天天综合 | 精品动漫中文字幕一区二区三区 | 欧美日韩亚洲国产精品一区二区 | 日韩在线国产 | 欧美色综合久久 | 9色在线播放 | 色老久久精品偷偷鲁一区 | 九九视频免费精品视频 | 天堂草原电视剧在线观看图片高清 | 亚洲日本在线播放 | 成人在线a| 久久久99精品久久久 | 欧美 日韩 人妻 高清 中文 | 亚洲国产一区在线二区三区 | 国产乱人伦偷精品视频下 | 日韩中文字幕精品久久 | 亚洲日韩亚洲另类激情文学 | www.日本黄| 久久精品国产99国产精品亚洲 | 久久精品国产欧美日韩亚洲 | 精品一级毛片 | 久草中文网 | 久青草国产97香蕉在线视频 | 久久久久毛片免费观看 | 久久综合给合综合久久 | 日韩免费视频网站 | 亚洲人成无码网站久久99热国产 | 国产乱淫a∨片免费视频 | 涩涩爱97| 在线天堂视频 | 亚洲 欧美 日韩 小说 另类 | 日韩综合nv一区二区在线观看 | 亚洲午夜久久 | 老太婆性杂交欧美肥老太 | 两性色午夜视频免费无码 | 搡女人真爽免费视频大全 | 午夜伦伦 | 免费高清不卡毛片在线看 | 男女啪啪成人免费网站 |