首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

sql连接查询on筛选与where筛选的区别

在连接查询语法,另人迷惑首当其冲的就要属on筛选和where筛选的区别了, 在我们编写查询的时候, 筛选条件的放置不管是在on后面还是where后面, 查出来的结果总是一样的, 既然如此,那为什么还要多此一举的让...当把 address '杭州' 这个筛选条件放在on之后,查询得到的结果似乎跟我们预料中的不同,从结果能看出,这个筛选条件好像只过滤掉了ext表对应的记录,而main表的记录并没有被过滤掉,...这似乎正是我们期望查询结果,然而在接下来的步骤这个结果会被打乱 第三步,添加外部行。outer join有一个特点就是以一侧的表为基,假如另一侧的表没有符合on筛选条件的记录,则以null替代。...在这次的查询,这一步的作用就是将那条原本应该被过滤掉的记录给添加了回来 ? 是不是不种画蛇添足的感觉, 结果就成了这样 ?...第四步,应用where筛选器 在这条问题sql,因为没有where筛选器,所以上一步的结果就是最终的结果了。

3.2K80
您找到你想要的搜索结果了吗?
是的
没有找到

拼接查询结果的字符串

实例: select concat(o.user_name,o.user_number) from user o where user_id = '1' 但是如果查询过程中有一个字符串为 null 则整个结果都将是...student o group by o.class_id 上面这个 sql 是将学生按班级进行分组,然后将学生的姓名拼装到一起 更复杂一些的例子,可以将学生的名字、学生的学科和分数进行分组查询并拼接结果...,o.score) order by o.id asc) from student o group by o.name; UNION UNION 操作符用于连接两个以上的 SELECT 语句的结果到一个结果集合...tables: 要查询的表名 WHERE conditions: 可选,查询条件 DISTINCT: 可选,删除结果集中重复的数据。...默认情况下 UNION 会删除重复数据,所以对结果无影响 ALL: 可选,返回所有结果集,包含重复数据

2.3K20

SQL 从查询结果查询

有orders表: 我想要从从表查出每天电动车和手机各自的销售总额。这个需求还是蛮简单的,仅仅须要依据createtime和product group by即可了。..." ) cr, product, SUM(price) total FROM orders GROUP BY DATE_FORMAT(createtime, "%Y-%m-%d"), product 查询结果例如以下...: 这个结果确实满足了我的需求,可是存在一个问题。...假设查询结果是以下这个样子,我想看起来会舒服得多: 对于怎样直接从表查询出这种结果,我是一点想法都没有,可是,我却知道怎样从上一个SQL语句的查询结果查询从而得到想要的结果。...createtime, "%Y-%m-%d"), product) AS origintable GROUP BY origintable.cr 假设大家想亲自试一试,能够用以下的SQL语句创建orders表和向表插入数据

2.7K10

数据库单表查询 - 简单筛选查询

数据库单表查询 - 简单筛选查询(附测试数据) 本文关键字:数据库、数据查询语言、DQL 之前我们已经了解了SQL语言的分类,可以划分为:DDL(数据定义语言)、DML(数据操纵语言)、DQL(数据查询语言...SELECT:指定要查询的列,会直接影响结果表的列的个数 FROM:指定要查询的表 WHERE:[可选],在需要进行数据筛选时使用,用于引导查询条件 在使用表名和列名时,为了防止和关键字冲突,可以使用反引号...部分列查询 部分列查询指的是只需要显示表的某几列,此时需要罗列出每个列的名称,用逗号隔开,所声明的列的名称必须与表已经定义的列名相同。...二、简单筛选 如果说SELECT后面的字段个数影响了查询结果的列,那么数据筛选(或称条件查询)就会影响到查询结果的行,有很多不符合条件的数据会被过滤掉。...查询单列 如果只查询一列的数据,得到的就是这一列去重后的结果: SELECT DISTINCT Course_no FROM Choice; ?

4.2K31

RediSQL 0.8.0 发布 将查询结果写入流

查询结果写入流可以带来几方面的好处: 首先,可以轻松地缓存这些高消耗查询结果。 其实,它将结果的创建与其消费分开,这是向前迈出了非常重要的一大步,特别是对于大的查询结果来说。...将查询结果写入流可以更有效地使用 Redis 主线程时间。...实际上,查询的计算不是由 redis 主线程完成的,但它卸载到另一个线程以允许 redis 继续为客户端提供服务,而返回结果必须在 Redis 主线程完成。...因此,长时间的结果可能需要花费大量时间才能返回给客户端,并且在那段时间内 Redis 无法提供其它请求。将结果写入流可以带来改进。...此外,一个小的消费者不会期望得到一个大的查询结果,这会让其不堪重负。在标准,这个问题通常使用游标来解决,但 Redis 本身并不提供此功能。

97120

Oracle查询优化-02给查询结果排序

1以指定的次序返回查询结果 问题 解决方案 总结 2按多个字段排序 问题 解决方案 总结 3按子串排序 问题 解决方案 总结 4 TRANSLATE 语法 工具 总结 5 按数字和字母混合字符串的字母排序...问题 解决方案 总结 6 处理排序空值 - nulls first 和 nulls last 问题 解决方案 总结 7 根据条件取不同列的值来排序 问题 解决方案 总结 2.1以指定的次序返回查询结果...问题 显示部门10的员工姓名、职位、工资,并且按照工资升序排列,结果集如下: SQL> select a.ename,a.job ,a.sal from emp a where a.deptno...如果在查询中使用group by 或者distinct,则不能按照select列 ---- 2.3按子串排序 问题 按照字符串的某一部分对查询结果进行排序。...Oracle 将空字符串解释为 NULL,并且如果TRANSLATE 的任何参数为NULL,那么结果也是 NULL。

1.1K20
领券