zoukankan      html  css  js  c++  java
  • 连接查询

      在做项目时用到了大量的查询,且绝大多数是多表连接查询,取一个数据不仅要找出它所在的表、列,还要找到与之关联的其他表,现将内查询、外查询的相关用法总结如下:

    一、语法

    ①、内连接

    SELECT 列名.*(可以有多个) 
    FROM 表1 JOIN 表2 ON 表1.列1=表2.列1

      这是我用的最多的一种,内连接实质是通过各个表之间的共同列关联来查询数据

    ②、左外连接

    SELECT 列名.*(可以有多个) 
    FROM 表1 LEFT JOIN 表2 ON 表1.列1=表2.列1

      左外连接是指保留连接表达式中的左表(表1)的非匹配记录和右表中的符合条件部分

    ③、右外连接

    SELECT 列名.*(可以有多个) 
    FROM 表1 RIGHT JOIN 表2 ON 表1.列1=表2.列1

      右外连接是指保留连接表达式中的右表(表2)的非匹配记录和左表中的符合条件部分

    二、举个小栗子加深理解

      我这里准备了两个表,并随意插入了一些数据

    表1

            表2

    ①内连接查询示例,语句如下

    SELECT * FROM  表1 JOIN 表2 ON 表1.evaluate_id=表2.evaluate_id

    查询结果

    ②左外连接查询示例,语句如下

    SELECT * FROM  表1  LEFT JOIN 表2 ON 表1.evaluate_id=表2.evaluate_id

    查询结果

     

    可以看到,左表中不符合条件的数据也保留了下来

    ③右外连接查询示例,语句如下

    SELECT * FROM  表1  RIGHT JOIN 表2 ON 表1.evaluate_id=表2.evaluate_id

    查询结果

    可以看到,这里右外查询的结果竟然和内查询是一样的,原因是两个表中都有1和2这两个evaluate_id,右外查询保留右表的非匹配记录,只保留左表的匹配条件的记录,而右表的记录中没有不匹配的,所以查询结果和内查询一样啦

  • 相关阅读:
    设计模式 || 观察者模式
    并发问题的源头—原子性、可见性、有序性。
    设计模式 || 适配器模式
    JAVA线程池的创建与使用
    JVM垃圾收集算法之清除算法
    JVM垃圾收集算法之标记算法
    ajax入门简介
    Junit测试入门
    JVM&G1 GC 学习笔记(一)
    HTTPS学习总结
  • 原文地址:https://www.cnblogs.com/liuliang1999/p/10601066.html
Copyright © 2011-2022 走看看