SQL中笛卡尔积-cross join的用法
在数学中,笛卡尔乘积是指两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员
假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。
MySQL中笛卡尔积相当于我们学习数学中集合的概念,数据库中运用此思想,产生了很多满足我们实际需要的SQL语句。
语法:
SELECT * FROM [TABLE 1] CROSS JOIN [TABLE 2]
OR
SELECT * FROM [TABLE 1], [TABLE 2] //重点,平时写法要注意啊
案例:
数据库的数据有:
TEST_A表: TEST_B表
select * from TEST_A a CROSS JOIN TEST_B b;
或者
select * from TEST_A a ,TEST_B b;
两表直接笛卡尔积的结果数量是两表的数据量相乘(列相加,行相乘)
带where条件id相等的笛卡尔积:
select * from TEST_A a cross join TEST_B b where a.ID = b.ID;
inner join:
select * from TEST_A a inner join TEST_B b on a.ID = b.ID;
带where条件id相等的笛卡尔积和inner join结果相同,但是inner join效率快一点
left join:
select * from TEST_A a left join TEST_B b on a.ID = b.ID;
right join:
select * from TEST_A a right join TEST_B b on a.ID = b.ID;
left join:TEST_A表的ID为空时拼接TEST_B表的内容为空,right join则相反
full join:
select * from TEST_A a full join TEST_B b on a.ID = b.ID;
full join:等于left join和right join的并集
转载于:https://www.cnblogs.com/Williamls/p/10544986.html
SQL中笛卡尔积-cross join的用法相关推荐
- Spark SQL中出现 CROSS JOIN 问题解决
Spark SQL中出现 CROSS JOIN 问题解决 参考文章: (1)Spark SQL中出现 CROSS JOIN 问题解决 (2)https://www.cnblogs.com/yjd_hy ...
- 关于SQL中Union和Join的用法
转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog) 一直以来,对于数据库SQL方面都是半吊子水平,能写一些基本的增删改查的语句,大部分时间都是用下Where, ...
- python threading join_Python中threading模块join函数用法实例分析
本文实例讲述了Python中threading模块join函数用法.分享给大家供大家参考.具体分析如下: join的作用是众所周知的,阻塞进程直到线程执行完毕.通用的做法是我们启动一批线程,最后joi ...
- Linq To Sql中实现Left Join与Inner Join使用Linq语法与lambda表达式
当前有两个表,sgroup与sgroupuser,两者通过gKey关联,而sgroup表记录的是组,而sgroupuser记录是组中的用户,因此在sgroupuser中不一定有数据.需要使用Left ...
- sql中的left join、right join、inner join
sql中的left join.right join.inner join 转自:http://www.cnblogs.com/pcjim/articles/799302.html left join( ...
- SQL查询cross join 的用法(笛卡尔积)
[转自]http://www.cnblogs.com/chenxizhang/archive/2008/11/10/1330325.html CROSS JOIN又称为笛卡尔乘积,实际上是把两个表乘起 ...
- SQL——左连接(Left join)右连接(Right join)内连接(Inner join) 笛卡尔积(Cross Join)
Left join 即左连接,是以左表为基础,根据ON后给出的两表的条件将两表连接起来.结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分.左连接全称为左外连接,是外连接的一种. ...
- sql中笛卡尔积现象以及运用
select studentname, Subjectname from Student ,subject 当查询这两张表的时候,结果可以是一张表中的数据条数乘以另一张表中的数据条数 笛卡尔积,又 ...
- 大数据之Hive:hive中的cross join函数
目录 1.简介 2.简单示例 3.实战 需求一: 具体实现 需求二: 具体实现 1.简介 CROSS JOIN是sql中的一种连接方式,区别于内连接和外连接,对于cross join连接来说,其实使用 ...
- 使用笛卡尔积 cross join解决傻傻的问题
select * from (( select invname from bd_invbasdoc where rownum <=5)cross join (select custname fr ...
最新文章
- php http_get_vars,$_GET($HTTP_GET_VARS)和$_POST($HTTP_POST_VARS)的区别
- 关于封装了gevent的request grequest库的使用与讨论
- centos在yum install报错:Another app is currently holding the yum lock解决方法
- Altium Designer多通道设计原理图添加端口
- 计算机动画课程设计,计算机动画课程设计.doc
- tableau必知必会之妙用 Lookup 函数同时跨行跨列取数
- 洛谷——P1183 多边形的面积
- ST17H26读ID卡调试过程
- steam怎么看邮箱绑定的账号_怎么为QQ邮箱设置英文邮箱账号
- hbase伪分布式配置
- Maven : Log4j2 could not find a logging implementation
- mysql 堆表_Mysql聚集索引和非聚集索引(堆组织表和索引组织表)
- Java开发笔记(一百三十)Swing的选择框
- snmp windows工具_局域网IP扫描工具下载-局域网IP扫描工具(SoftPerfect Network Scanner)v7.3.0官方版...
- Sublime Text3自定义主题
- 计算机基础之二进制详解(二)
- Win10 重装后没有微软账户登录选项怎么办?
- 大屏可视化简介(echarts)
- windows 查看IP地址或端口是否可以连接-常用命令
- Python多线程下调用win32com包相关问题:pywintypes.com_error: (-2147221008, ‘尚未调用 CoInitialize。‘, None, None)问题处理