当前位置: 首页 > news >正文

广西建设安全员证查询网站沈阳seo博客

广西建设安全员证查询网站,沈阳seo博客,关键词分析软件,网站图片怎么优化表关联是频率非常高的一种数据库操作,在MySQL中,这种JOIN操作有很多类型,包括内联接、左外连接、右外连接等等,而每种连接的含义都不一样,如果死记硬背,不仅很难记住,而且也容易搞混淆&#xff…

表关联是频率非常高的一种数据库操作,在MySQL中,这种JOIN操作有很多类型,包括内联接、左外连接、右外连接等等,而每种连接的含义都不一样,如果死记硬背,不仅很难记住,而且也容易搞混淆,今天我们尝试使用图解的方式来讲解各种连接的内涵,因为结合了具体的例子,相信会让大家印象深刻。

MySQL中常见的表关联有如下几种:

  1. INNER JOIN
  2. LEFT JOIN
  3. RIGHT JOIN
  4. FULL OUTER JOIN
  5. LEFT JOIN EXCLUDING INNER JOIN
  6. RIGHT JOIN EXCLUDING INNER JOIN
  7. OUTER JOIN EXCLUDING INNER JOIN
  8. CROSS JOIN

1 准备环境

先创建两张表,一张是订单表,一张是客户表,订单表中的字段customer_id与客户表的主键关联。数据表创建完成后,再往表里插入简单的测试数据:

先是订单表:

CREATE TABLE `t_order` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`order_no` int(11) DEFAULT NULL COMMENT '订单号',`customer_id` int(11) DEFAULT NULL COMMENT '客户id',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;-- 插入数据
INSERT INTO `t_order` VALUES ('1', '1001', '1');
INSERT INTO `t_order` VALUES ('2', '1002', '26');

然后是客户表:

CREATE TABLE `t_customer` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`customer_name` varchar(255) DEFAULT NULL COMMENT '客户姓名 ',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;-- 插入数据
INSERT INTO `t_customer` VALUES ('1', 'John');
INSERT INTO `t_customer` VALUES ('2', 'Tom');

两张表中的数据分别如下:

2 INNER JOIN

INNER JOIN应该是最常用的表连接了,它只返回两个表中满足关联条件的数据:

以内连接的方式关联查询订单表和客户表:

SELECT A.id AS A_id, A.order_no, A.customer_id, B.id AS B_id, B.customer_name
FROM t_order A INNER JOIN t_customer B
ON A.customer_id=B.id

查询结果如下,可以看出,只返回了一行记录,内连接可以理解为查询两个表的交集:

3 LEFT JOIN

LEFT JOIN是左连接,它会返回左表中所有数据,即使右表没有匹配行,如果右表没有相匹配的记录,则返回NULL:

SQL语句和查询结果如下:

SELECT A.id AS A_id, A.order_no, A.customer_id, B.id AS B_id, B.customer_name
FROM t_order A LEFT JOIN t_customer B
ON A.customer_id=B.id

可以看出,左连接返回了左表的数据,对于客户id为26的记录,在客户表中并不存在,所以它们的值为NULL。

4 RIGHT JOIN

而RIGHT JOIN是右连接,跟左连接的逻辑类似,只不过它以右表为基准进行关联,它返回右表中所有数据,即使左表没有匹配行,如果左表没有相匹配的记录,则返回NULL:

SQL语句和查询结果如下:

SELECT A.id AS A_id, A.order_no, A.customer_id, B.id AS B_id, B.customer_name
FROM t_order A RIGHT JOIN t_customer B
ON A.customer_id=B.id

它返回了客户表(右表)中的所有数据,对于客户id为2的记录,订单表中没有对应的数据,所以相应的字段值为NULL。

5 FULL OUTER JOIN

对于上面提到的LEFT JOIN和RIGHT JOIN,它们分别表示左外连接和右外连接,完整的写法还需要加上OUTER关键字,也就是LEFT OUTER JOIN和RIGHT OUTER JOIN。

除了左外连接和右外连接,有时候还需要把两个表中的数据都查询出来,也就是满外连接,相当于是两个表的并集。目前使用的版本5.7还不支持这样的查询,可以使用UNION来进行模拟:

SQL语句和查询结果如下:

SELECT A.id AS A_id, A.order_no, A.customer_id, B.id AS B_id, B.customer_name
FROM t_order A LEFT JOIN t_customer B
ON A.customer_id=B.id
UNION
SELECT A.id AS A_id, A.order_no, A.customer_id, B.id AS B_id, B.customer_name
FROM t_order A RIGHT JOIN t_customer B
ON A.customer_id=B.id

6 LEFT JOIN EXCLUDING INNER JOIN

返回左表有但右表没有的数据:

SQL语句和查询结果如下:

SELECT A.id AS A_id, A.order_no, A.customer_id, B.id AS B_id, B.customer_name
FROM t_order A LEFT JOIN t_customer B
ON A.customer_id=B.id
WHERE B.id IS NULL;

7 RIGHT JOIN EXCLUDING INNER JOIN

返回右表有但左表没有的数据:

SQL语句和查询结果如下:

SELECT A.id AS A_id, A.order_no, A.customer_id, B.id AS B_id, B.customer_name
FROM t_order A RIGHT JOIN t_customer B
ON A.customer_id=B.id
WHERE A.id IS NULL;

8 OUTER JOIN EXCLUDING INNER JOIN

返回左表和右表没有相互关联的数据:

SQL语句和查询结果如下:

SELECT A.id AS A_id, A.order_no, A.customer_id, B.id AS B_id, B.customer_name
FROM t_order A LEFT JOIN t_customer B
ON A.customer_id=B.id
WHERE B.id IS NULL
UNION
SELECT A.id AS A_id, A.order_no, A.customer_id, B.id AS B_id, B.customer_name
FROM t_order A RIGHT JOIN t_customer B
ON A.customer_id=B.id
WHERE A.id IS NULL

9 CROSS JOIN

它返回两个表的笛卡尔积,也就是把两个表中的数据组合起来。

SQL语句和查询结果如下:

SELECT A.id AS A_id, A.order_no, A.customer_id, B.id AS B_id, B.customer_name
FROM t_order A CROSS JOIN t_customer B

http://www.yayakq.cn/news/804615/

相关文章:

  • 营销型网站建设主要需要注意什么棋牌网站建设要多少钱
  • 易营宝自助建站系统中国最新消息新闻报道
  • 云南站群网站建设佛山市南海建设局网站
  • seo网站培训设计参考网站有哪些
  • 做网站排行网上书店网站建设的说明书
  • 网站建设的实验的结论WordPress 古腾堡开发
  • 网站建设公司推广广告语网页建站总结报告
  • 做网站公司的前景广州企业网站设计制作
  • 如何调整网站板块位置网站建设工程师证书
  • 网站建设需要投资多少广州网站制作开发
  • 帮别人做视频剪辑的网站手工品外贸出口网站建设方案
  • 网站域名 空间申请网络营销策略的制定
  • 罗岗网站建设哪家好物业公司企业文化建设
  • 淄博网站制作设计公司科技狂人
  • 怎么做多个网站单点登录网站管理助手4.0 破解
  • 网络推广网站程序建造师官网
  • 达孜网站建设口红机网站怎么做
  • 多网站建设wordpress 转 app
  • 站内信息 wordpress建网站主要工具
  • 正能量软件不良网站免费入口石家庄最新防疫政策
  • 网站建设管理工作自查报告松江郑州阳网站建设
  • 绍兴 网站制作一学一做教育视频网站有哪些内容
  • 公司企业注册信息查询杭州seo渠道排名
  • 可信网站认证logo网站开发人员岗位分布说明
  • 网站建设工程师北京综合网络营销哪里好
  • 做系统网站信息检索网站妙影免费模板下载
  • 做ppt好的网站有哪些汕头seo外包公司
  • 合肥网站建设 微笑互联广告公司网站建设策划书
  • 餐饮公司最好的网站建设网站设计定制公司
  • 如何设计个人网站家具网站模板