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,右外查询保留右表的非匹配记录,只保留左表的匹配条件的记录,而右表的记录中没有不匹配的,所以查询结果和内查询一样啦

  • 相关阅读:
    EasyUI datagrid动态生成列
    EasyUI easyui-combobox实现数据联动
    EasyUI中datagrid的基本用法
    Oracle update 执行更新操作后的数据恢复
    SqlHelper类
    oracle drop table(表)数据恢复方法
    C#微信公众号——本地调试
    git ignore 总结
    maya cmds pymel 选择 uv area(uv 面积) 为0 的面
    maya cmds pymel selectType() 选择类型切换
  • 原文地址:https://www.cnblogs.com/liuliang1999/p/10601066.html
Copyright © 2011-2022 走看看