zoukankan      html  css  js  c++  java
  • 深入了解join用法

    最近面试经常被问到inner join, right join , left join  今晚决定搞清楚这些:

    首先先创建两个表:

    CREATE TABLE Persons
    (
    Id_P int NOT NULL PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
    )
    
    CREATE TABLE Orders
    (
    Id_O int NOT NULL PRIMARY KEY,
    OrderNo int NOT NULL,
    Id_P int NOT NULL 
    )

    下面我在里面写入内容,如下图所示:

    1,Persons表

    2,Orders表

    现在步入正题:

    1. join(inner join)

      只有两个表格都满足条件,才会列出。INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果 "Persons" 中的行在 "Orders" 中没有匹配,就不会列出这些行。

    select Persons.LastName,Persons.FirstName,Orders.OrderNo from Persons inner join Orders on Persons.Id_P=Orders.Id_P
    order by Persons.LastName

    结果:

    2,left join

        LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。

     

    select Persons.LastName,Persons.FirstName,Orders.OrderNo from Persons left join Orders on Persons.Id_P=Orders.Id_P
    order by Persons.LastName

    3,right join

       RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。

    select Persons.LastName,Persons.FirstName,Orders.OrderNo from Persons right join Orders on Persons.Id_P=Orders.Id_P
    order by Persons.LastName

    4,full join

    只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。

    select Persons.LastName,Persons.FirstName,Orders.OrderNo from Persons full join Orders on Persons.Id_P=Orders.Id_P
    order by Persons.LastName

    结果:

    以上仅供自己学习!

  • 相关阅读:
    Python-控制流
    字符串创建运算符#
    Python-操作符和表达式
    Python-基础数据类型
    重载、重写和隐藏
    java加载jdbc驱动三种方式的比较
    Mysql 索引复习笔记
    Java中如何指定跳出多重嵌套循环
    LeetCode第[2]题(Java):Add Two Numbers (链表相加)——Medium
    LeetCode第[26]题(Java):Remove Duplicates from Sorted Array 标签:Array
  • 原文地址:https://www.cnblogs.com/wuyuankun/p/3730969.html
Copyright © 2011-2022 走看看