六、SQL–表连接③(不等值连接)

作者: 小小一颗卤蛋 | 来源:发表于2020-04-29 13:09 被阅读0次

等值连接:

连接的ON子句的条件包含一个等号运算。
等值连接是最常用的连接,因为它指定的连接条件是一个表中的一个字段必须等于另一个表中的一个字段。

不等值连接:

在连接的条件中可以使用小于(<)、大于(>)、不等于(<>)等运算符,还可以使用LIKE、BETWEEN AND等运算符,甚至还可以使用函数。

例如,如果需要检索价格小于每个客户的年龄的五倍值的订单列表,那么就可以使用不等值连接,实现的SQL语句如下所示:

SELECT T_Order.FNumber,T_Order.FPrice,T_Customer.FName,T_Customer.FAge FROM T_Order INNER JOIN T_Customer ON T_Order.FPrice< T_Customer.FAge*5

执行结果:

FNumber FPrice FName FAge
K001 100.00 TOM 21
K001 100.00 MIKE 24
K001 100.00 JACK 30
K001 100.00 TOM 25
N002 100.00 TOM 21
N002 100.00 MIKE 24
N002 100.00 JACK 30
N002 100.00 TOM 25
T002 100.00 TOM 21
T002 100.00 MIKE 24
T002 100.00 JACK 30
T002 100.00 TOM 25

不等值连接产生了大量的查询结果,因为它是对被连接的两张表做了笛卡尔运算,所以如果只想查看与客户对应的订单,那么就要在不等值连接后添加等值连接匹配条件。实现的SQL语句如下:

SELECT T_Order.FNumber,T_Order.FPrice,T_Customer.FName,T_Customer.FAge FROM T_Order INNER JOIN T_Customer ON T_Order.FPrice< T_Customer.FAge*5 and T_Order.FCustomerId=T_Customer.FId

这里添加了“and T_Order.FCustomerId=T_Customer.FId”这个条件来限制匹配规则。执行结果:

FNumber FPrice FName FAge
K001 100.00 TOM 24

相关文章

  • 连表查询:sql1992和sql1999

    sql1992 sql分类 1.笛卡尔积 (表乘表) 2.等值连接 表的连接条件使用“=” 3.非等值连接 表的连...

  • 六、SQL–表连接③(不等值连接)

    等值连接: 连接的ON子句的条件包含一个等号运算。等值连接是最常用的连接,因为它指定的连接条件是一个表中的一个字段...

  • 多表查询

    等值连接 表别名 多表等值连接 自然连接、USING子句、ON子句 自关联 非等值连接 等值连接   其中sele...

  • 多表查询

    一、oracle的连接 sql99的连接 1、等值连接 ...

  • SQL连接

    SQL连接一般分为三类: 内连接 等值连接:INNER JOIN 或 用=连接两个字段 非等值连接...

  • 52 SQL 复习 语句关系代数(三)

    多表查询 等值连接查询和非等值连接查询 JOIN ON 自然连接 自身连接 注意,如果属性名在参与连接的各个表中是...

  • Hadoop-HIVE3

    HIVE jion 语句 只支持等值连接,不支持非等值连接。 内连接 只有进行连接的两个表中都存在与连接条件相匹配...

  • Oracle_多表查询

    SQL多表查询 等值和不等值连接查询 从多个表中获取数据:如果在查询的时候,直接从多个表中获取数据。没有添加条件判...

  • 查询

    连接查询 1.等值连接 连接符号为= 出现的列成为连接字段 2.非等值连接 非= 3.交叉连接 (非限制连接) 不...

  • Oracle 数据库高级查询语句方法

    1.等值连接 SQL> ---查询出员工和员工的部门的名称是什么(涉及两个表emp,dept的联合查询,找等值条件...

网友评论

    本文标题:六、SQL–表连接③(不等值连接)

    本文链接:https://www.haomeiwen.com/subject/mvpgwhtx.html