主要来介绍下Inner Join , Full Out Join , Cross Join , Left Join , Right Join的区别。
Inner Join:筛选两边都有的记录
Full Out Join:两边都筛选出来,匹配能匹配的,不能匹配的用NULL列出
Cross Join:列出两边所有组合,也称为笛卡尔集 A×B
Left Join:以左边的表为主表,列出主表所有记录,匹配能匹配的,不能匹配的用 NULL列出
Right Join:以右边的表为主表,列出主表所有记录,匹配能匹配的,不匹配的用NULL列出
下面来看代码:
创建测试表:
CREATETABLE CONSUMERS ( CONSUMER_ID INTNOTNULL, CONSUMER_NAME VARCHAR(10) NOTNULL ) CREATETABLE ORDERS ( CONSUMER_ID INTNOTNULL, ORDER_ID VARCHAR(10) NOTNULL)
编测试数据
INSERT CONSUMERS VALUES ( 1, 'AA') INSERT CONSUMERS values ( 2, 'BB') INSERT CONSUMERS values ( 3, 'CC') INSERT ORDERS VALUES ( 2, 'O100001') INSERT ORDERS VALUES ( 3, 'O100002') INSERT ORDERS VALUES ( 3, 'O100003') INSERT ORDERS VALUES ( 4, 'O100004')
测试
--Inner Join --筛选两边都有的记录 SELECT * FROM ORDERS o INNER JOIN CONSUMERS c ON o.CONSUMER_ID = c.CONSUMER_ID --Full Out Join --两边都筛选出来,匹配能匹配的,不能匹配的用NULL列出 SELECT * FROM ORDERS o FULL OUTER JOIN CONSUMERS c ON o.CONSUMER_ID = c.CONSUMER_ID --Cross Join --列出两边所有组合,即笛卡尔集A×B SELECT * FROM ORDERS o CROSS JOIN CONSUMERS c --Left Join --以左边的表为主表,列出主表所有记录,匹配能匹配的,不能匹配的用NULL列出 SELECT * FROM CONSUMERS c left join ORDERS o on c .CONSUMER_ID = o .CONSUMER_ID --Right Join --以右边的表为主表,列出主表所有记录,匹配能匹配的,不能匹配的用NULL列出 SELECT * FROM CONSUMERS c RIGHT JOIN ORDERS o on c .CONSUMER_ID = o .CONSUMER_ID
ok了,具体的大家可以参考小牛知识库以前发布的文章。
本文向大家介绍Android 区别真机和模拟器的几种方法,包括了Android 区别真机和模拟器的几种方法的使用技巧和注意事项,需要的朋友参考一下 现在的模拟器的功能太强大,从蓝牙,传感器等配件到IMEI,Mac,以及手机硬件信息什么都可以模拟 为了防止用户利用模拟器模仿真机进行刷单,刷流量等恶意操作。 需要获取设备返回的一些信息来鉴别设备的真伪。 下面是整理的模拟器和真机的区别 虽然大部分都可以
本文向大家介绍什么是白盒测试,有几种方法相关面试题,主要包含被问及什么是白盒测试,有几种方法时的应答技巧和注意事项,需要的朋友参考一下 又称为逻辑驱动测试,结构测试。知道产品内部的工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。 主要方法:逻辑驱动测试、基路测试 白盒测试分为静态和
本文向大家介绍JavaScript数组去重的几种方法效率测试,包括了JavaScript数组去重的几种方法效率测试的使用技巧和注意事项,需要的朋友参考一下 以下是我针对网上三种高效率方法总结与效率测试,如果大家有更好的意见或建议也可以提出,大家共勉学习。 数组去重法1: 数组去重法2: 数组去重法3: 效率测试方法: 效率测试结果: 总结 以上就是关于JavaScript几种数组去重的方法效率测试
本文向大家介绍Java线程池的几种实现方法和区别介绍,包括了Java线程池的几种实现方法和区别介绍的使用技巧和注意事项,需要的朋友参考一下 Java线程池的几种实现方法和区别介绍 使用:LinkedBlockingQueue实现线程池讲解 关于:RejectedExecutionHandler几种默认实现讲解 以上这篇Java线程池的几种实现方法和区别介绍就是小编分享给大家的全部内容了,希望能给大
问题内容: 这两个连接将给我相同的结果: 与 语句之间的性能或其他方面有什么区别吗? 不同的 SQL 实现之间是否有所不同? 问题答案: 它们在功能上是等效的,但阅读起来可能更清晰,尤其是在查询中包含其他联接类型(即or或)的情况下。
本文向大家介绍详解Nginx几种常见实现301重定向方法上的区别,包括了详解Nginx几种常见实现301重定向方法上的区别的使用技巧和注意事项,需要的朋友参考一下 Nginx下常见的301跳转有以下三种,虽然都能达到同样的目的。但是三种写法上还是有区别的,主要的区别是在正则匹配的性能上。 第一种:使用rewrite指令,通过正则匹配所有的URI后再去掉开头第一个/(反斜线)。 第二种:同样使用re
本文向大家介绍inner join和left join之间的区别详解,包括了inner join和left join之间的区别详解的使用技巧和注意事项,需要的朋友参考一下 前言 关于inner join 与 left join 之间的区别,以前以为自己搞懂了,今天从前端取参数的时候发现不是预想中的结果,才知道问题出在inner join 上了。 需求是从数据库查数据,在前端以柱形图的形式展现出来,
系统测试和验收测试的区别如下表所示: 编号 系统测试 验收测试 1 执行系统测试以测试软件的端到端功能。 执行验收测试以测试软件是否符合规定的要求和用户要求。 2 只有开发人员和测试人员才能执行系统测试。 它可以由测试人员,利益相关者和客户执行。 3 它可以是非功能性和功能性测试。 它只能是功能测试。 4 在系统测试中,可测试整个系统的性能。 在验收测试中,测试系统是否符合要求。 5 系统测试使用