zoukankan      html  css  js  c++  java
  • 笛卡尔积与交叉联接

    1 笛卡尔积定义

    A,B为集合,用A中元素为第一元素,B中元素为第二元素构成的有序对,所有这样的有序对组成的集合叫做AB的笛卡尔积,记作AxB

    例如,A={a,b},B={0,1,2},

    AxB={<a,o>,<a,1>,<a,2>,<b,0>,<b,1>,<b,2>,}

    BxA={<0,a>,<0,b>,<1,a>,<1,b>,<2,a>,<2,b>}


    交差联接

    交差联接是笛卡尔积在SQL中的实现,SQL中使用关键字“CROSS JOIN”来表示交差联接。

    例如:存在表tb_Class及表tb_Student,两表拥有的数据如下图所示。

     

     

    对两表进行交叉连接查询:

    SELECT * FROM tb_Class a CROSS JOIN tb_Student b
    SELECT * FROM tb_Student c CROSS JOIN tb_Class d 

    得到以下查询结果:

     

    3 小知识

    1) 交叉连接不能使用ON关键字,但可以使用WHERE子句定义连接条件。

    SELECT * FROM tb_Class a CROSS JOIN tb_Student b WHERE a.classid=b.classid


    此时,与以下查询结果一致。

    SELECT * FROM tb_Class a ,tb_Student b WHERE a.classid=b.classid

    所以,如果添加了WHERE子句,则交叉联接的行为将与内部联接行为相似。

    2 )交叉连接返回的数据行数为第一个表中符合条件的数据行数乘以第二个表中符合条件的数据行数。

    实例中的 tb_Class表有4数据,tb_Student表有3行数据,所以返回的结果有12行。

  • 相关阅读:
    文件上传Web小案例
    加密方法(MD5加密)
    解决中文乱码(不可能解决不了)
    jquery的一些常见使用方法
    Ajax的作用
    日期时间格式的转换
    前端点击复制内容
    uniapp 移动端防止点击事件穿透
    getCurrentPages 获取当前网页完整的URL
    关闭微信浏览器网页
  • 原文地址:https://www.cnblogs.com/riasky/p/3465164.html
Copyright © 2011-2022 走看看