在数学中,笛卡尔乘积是指两个集合XY的笛卡尓积(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的用法相关推荐

  1. Spark SQL中出现 CROSS JOIN 问题解决

    Spark SQL中出现 CROSS JOIN 问题解决 参考文章: (1)Spark SQL中出现 CROSS JOIN 问题解决 (2)https://www.cnblogs.com/yjd_hy ...

  2. 关于SQL中Union和Join的用法

    转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog) 一直以来,对于数据库SQL方面都是半吊子水平,能写一些基本的增删改查的语句,大部分时间都是用下Where, ...

  3. python threading join_Python中threading模块join函数用法实例分析

    本文实例讲述了Python中threading模块join函数用法.分享给大家供大家参考.具体分析如下: join的作用是众所周知的,阻塞进程直到线程执行完毕.通用的做法是我们启动一批线程,最后joi ...

  4. Linq To Sql中实现Left Join与Inner Join使用Linq语法与lambda表达式

    当前有两个表,sgroup与sgroupuser,两者通过gKey关联,而sgroup表记录的是组,而sgroupuser记录是组中的用户,因此在sgroupuser中不一定有数据.需要使用Left ...

  5. sql中的left join、right join、inner join

    sql中的left join.right join.inner join 转自:http://www.cnblogs.com/pcjim/articles/799302.html left join( ...

  6. SQL查询cross join 的用法(笛卡尔积)

    [转自]http://www.cnblogs.com/chenxizhang/archive/2008/11/10/1330325.html CROSS JOIN又称为笛卡尔乘积,实际上是把两个表乘起 ...

  7. SQL——左连接(Left join)右连接(Right join)内连接(Inner join) 笛卡尔积(Cross Join)

    ​Left join 即左连接,是以左表为基础,根据ON后给出的两表的条件将两表连接起来.结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分.左连接全称为左外连接,是外连接的一种. ...

  8. sql中笛卡尔积现象以及运用

    select studentname, Subjectname   from Student ,subject 当查询这两张表的时候,结果可以是一张表中的数据条数乘以另一张表中的数据条数 笛卡尔积,又 ...

  9. 大数据之Hive:hive中的cross join函数

    目录 1.简介 2.简单示例 3.实战 需求一: 具体实现 需求二: 具体实现 1.简介 CROSS JOIN是sql中的一种连接方式,区别于内连接和外连接,对于cross join连接来说,其实使用 ...

  10. 使用笛卡尔积 cross join解决傻傻的问题

    select * from (( select invname from bd_invbasdoc where rownum <=5)cross join (select custname fr ...

最新文章

  1. php http_get_vars,$_GET($HTTP_GET_VARS)和$_POST($HTTP_POST_VARS)的区别
  2. 关于封装了gevent的request grequest库的使用与讨论
  3. centos在yum install报错:Another app is currently holding the yum lock解决方法
  4. Altium Designer多通道设计原理图添加端口
  5. 计算机动画课程设计,计算机动画课程设计.doc
  6. tableau必知必会之妙用 Lookup 函数同时跨行跨列取数
  7. 洛谷——P1183 多边形的面积
  8. ST17H26读ID卡调试过程
  9. steam怎么看邮箱绑定的账号_怎么为QQ邮箱设置英文邮箱账号
  10. hbase伪分布式配置
  11. Maven : Log4j2 could not find a logging implementation
  12. mysql 堆表_Mysql聚集索引和非聚集索引(堆组织表和索引组织表)
  13. Java开发笔记(一百三十)Swing的选择框
  14. snmp windows工具_局域网IP扫描工具下载-局域网IP扫描工具(SoftPerfect Network Scanner)v7.3.0官方版...
  15. Sublime Text3自定义主题
  16. 计算机基础之二进制详解(二)
  17. Win10 重装后没有微软账户登录选项怎么办?
  18. 大屏可视化简介(echarts)
  19. windows 查看IP地址或端口是否可以连接-常用命令
  20. Python多线程下调用win32com包相关问题:pywintypes.com_error: (-2147221008, ‘尚未调用 CoInitialize。‘, None, None)问题处理

热门文章

  1. smart原则_设立目标的smart原则
  2. rtmp直播推流软件推荐
  3. 原生ajax请求流程
  4. Tomcat8配置SSL证书
  5. 在termux中利用安卓的vulkan库加速NCNN
  6. 摄影后期从入门到精通(一)
  7. 如何修改云服务器连接密码错误,如何修改云服务器连接密码
  8. 毛星云OpenCV3
  9. Go游戏框架初探《一》
  10. plc应用与c语言编程区别,PLC编程与应用入门基础知识