zoukankan      html  css  js  c++  java
  • MySQL之多表查询

      之前我们建立表与表之间的关系是用的foreign key,外键所连接的两个表之间是强制连接关系,而且建表还得先建立被指向的表,之后才能建立有外键的表,其实我们还有其他方法,不使用外键就可以实现关联,多表查询有以下三种方法。

      现在有两个表,分别为department表和employee表,他们之间是没有外键关系的。

      两个表分别有以下数据。

      一、笛卡尔积

      我们可以通过笛卡尔积得到一个新的虚拟的表。

      我们得到这个表之后,就可以用这表取我们想要的数据。比如拿到技术部门的员工名字

      二、链表查询

      其实链表查询和笛卡尔积差不多,只是笛卡尔积的链表和查询放在了一起,逻辑不是很好,但链表就把链表和查询分开的。主要分为四种。

      1,inner join    on

      2,left join     on

      3,right join   on

      4,union

      上面的四种方法可以帮我们创建一个虚拟的表,得到这表之后我们就可以进行查询。

      三、子查询

      子查询就是先对一个表查询得到一个值,然后我们把这个值作为下一个表查询的约束条件用。

      对于第一个得到的结果可以是几个值,所以我还可以使用in,!=,<,>,not ,exists

      exists的用法:select * from employee where exists ..............此处的省略可以跟任意,只要省略的内容不为零就会执行前面的代码,不然前面的代码就不会执行。

            

  • 相关阅读:
    OI无关--关于侧边栏
    Codeforces Round #528 div1
    BZOJ 3531: [Sdoi2014]旅行
    BZOJ 4538: [Hnoi2016]网络
    Codeforces Round #527 (Div. 3)
    Avito Cool Challenge 2018
    Educational Codeforces Round 56 (Rated for Div. 2)
    Codeforces Round #526 (Div. 1)
    2018-2019 Russia Open High School Programming Contest (Unrated, Online Mirror, ICPC Rules, Teams Preferred)
    Codeforces Round #525 (Div. 2)
  • 原文地址:https://www.cnblogs.com/12345huangchun/p/10098722.html
Copyright © 2011-2022 走看看