mysql 里 笛卡尔积在实际开发中很少遇到,今天我是想将多个不同的select的结果(每个select的集合大小都是1或者0)只用一次查询返回在同一行中,但发现个问题,当其中一个结果集为空集时,最终结果就是空集.

开始用的sql语句

SELECT * FROM

(select * from table1 ) as t1,

(select * from table2 ) as t2,

(select * from table3 ) as t3

我确保里面每个子查询寻的结果条数都是1或0.但是当里面其中一个是0时,就都没了.

改用left join 试试

SELECT * FROM

(select * from table1 ) as t1

left join

(select * from table2 ) as t2 on 1=1

left join

(select * from table3 ) as t3 on 1=1

问题来了,t1的结果条数是0怎么办.....

需要有个必须能查出的结果.

最终版

SELECT * FROM

(select 1) as t0 left join

(select * from table1 ) as t1 on 1=1

left join

(select * from table2 ) as t2 on 1=1

left join

(select * from table3 ) as t3 on 1=1

这回就不会存在没有返回的情况了.

笛卡尔积(交叉连接) (以下是copy的,忘记在那copy的了):

在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用',' 如

SELECT * FROM table1 CROSS JOIN table2

SELECT * FROM table1 JOIN table2

SELECT * FROM table1,table2

由于其返回的结果为被连接的两个数据表的乘积,因此当有WHERE, ON或USING条件的时候一般不建议使用,因为当数据表项目太多的时候,会非常慢。 一般使用LEFT [OUTER] JOIN或者RIGHT [OUTER] JOIN

mysql中什么是空集合_mysql 中使用笛卡尔积 避免其中一方为空集时结果就是空集的方法...相关推荐

  1. mysql的float取值范围_MYSQL中支持的数据类型及取值范围

    下表列出了各种数值类型以及它们的允许范围和占用的内存空间. 类型 大小 范围(有符号) 范围(无符号) 用途 TINYINT 1字节 -128~127 0~255 小整数值 SMALLINT 2字节 ...

  2. MySQL中count是什么函数_MySQL中

    本篇文章给大家带来的内容是关于mysql大表中count()的用法以及mysql中count()的优化,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助.一个单表中包含有6000w+的数据 ...

  3. python创建一个空集合_Python中如何创建集合

    #创作者招募令# 第六十七节:创建集合 集合作为序列形式的一种,在Python中也有应用. 先来看看集合在数学中的定义:集合(aggregate)是"确定的一堆东西",集合里的&q ...

  4. mysql什么情况会加意向锁_MySQL中的锁4-插入意向锁和自增锁

    插入意向锁(Insert Intention Lock) 插入意向锁本质上可以看成是一个Gap Lock 普通的Gap Lock 不允许 在 (上一条记录,本记录) 范围内插入数据 插入意向锁Gap ...

  5. mysql中存储引擎是啥_mysql中的存储引擎

    mysql存储引擎概述 什么是存储引擎? MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力. ...

  6. mysql查找有小数点的数据_MySQL中查询中位数?

    导读:计算中位数可能是小学的内容,然而在数据库查询中实现却并不是一件容易的事.我们今天就来看看都有哪些方法可以实现. 注:本文所用MySQL版本无限制,所列题目均来源于LeetCode. LeetCo ...

  7. mysql截取前几个字符串_mysql中截取指定字符前后的字符串

    使用SUBSTRING_INDEX()函数 substring_index(str,delim,count) str:要处理的字符串 delim:分隔符 count:分隔符计数 例子 取出上述表中数组 ...

  8. mysql的视图的名词解释_MySql中的视图的概念及应用

    视图的基本概念 视图是从一个或几个基本表(或者视图)导出的表.它与基本表不同,是一个虚表. 数据库只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中.所以基本表中的数据发生变化, ...

  9. mysql从库追主库日志_MySQL 中主库跑太快,从库追不上怎么整?

    写这篇文章是因为之前有一次删库操作,需要进行批量删除数据,当时没有控制好删除速度 ,导致产生了主从延迟,出现了一点小事故. 今天我们就来看看为什么会产生主从延迟以及主从延迟如何处理等相关问题. 坐好了 ...

最新文章

  1. 真「祖传代码」!你的GitHub代码已打包运往北极,传给1000年后人类
  2. Java泛型应用详解
  3. 《研磨设计模式》chap21 解释器模式Interpreter(1)模式介绍
  4. 嵌入式小白到大神学习全攻略(学习路线+课程+学习书籍+练习项目)
  5. actionscript3 事件类型
  6. 文件手动删除后 同步到git
  7. python20个常用语法_这20个常规Python语法你都搞明白了吗?
  8. .NET、C#和ASP.NET三者之间的区别与联系
  9. STL中常用容器的数据结构与底层实现
  10. 道路设计基础知识,让你一秒变大师
  11. 单行、多行文本溢出省略号
  12. linux怎样安装麒麟双系统,win10系统装麒麟系统双系统的具体办法
  13. 安规电容知识详解,X电容和Y电容
  14. gigaset812说明书_西门子GIASET825电话机说明书.pdf
  15. Qgis教程09:高程栅格数据
  16. iic的SDA引脚偶尔有毛刺(尖峰)是怎么回事。
  17. 请仔细品味--俞敏洪励志演讲
  18. TTL和CMOS电平
  19. 几道web前端面试题
  20. 把《算法的乐趣》随书源码放在GitHub上了

热门文章

  1. Swift 的变化:从 2.2 到 3.0 会带来什么
  2. 搭建你的持续集成server - CruiseControl step by step(1)
  3. 算法高级(2)-多年以前的电脑算命是怎么回事?
  4. 【kubernetes系列】Pod篇实战操作
  5. android parcel空指针,android - intent.hasExtra(“ meta”)抛出错误的可包裹异常 - 堆栈内存溢出...
  6. php slaveokay 设置,PHP: MongoCursor::slaveOkay - Manual
  7. android activity滑动切换,Android 向右滑动切换Activity, 随着手势的滑动而滑动的效果...
  8. linux中不同版本的gcc切换,Ubuntu 14.04中升级gcc到版本4.9.2并切换使用它们
  9. 【第二组】项目冲刺(Alpha版本)第三次每日例会 2017/7/13
  10. Windows下Java调用BAT批处理不弹出cmd窗口