• DataBase -- JOIN


    SQL JOIN:用于根据两个或多个表中列的关系,从这些表中查数据。

    (为了得到完整数据,我们需要从两个或多个表中获取结果。)

    例如W3School中列出的实例,使用如下语句:

    select Persons.LastName, Persons.FirstName, Orders.OrderNo
    from Persons
    inner Join orders
    on Persons.Id_p = Orders.Id_p
    order by Persons.LaseName
    • 除了上面的inner join还有以下几种连接:
      • JOIN:如果表中至少有一个匹配,则返回行;
      • LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行;
      • RIGHT JOIN:即使左表中没有匹配,也从右表中返回所有的行;
      • FULL JOIN:只要其中一个表中存在匹配,则返回行。
    • INNER JOIN语法:(INNER JOIN 与 JOIN是相同的)
    SELECT column_names 
    FROM table_name1
    INNER JION table_name2
    ON table_name1.column_name = table_name2.column_name
    •  LEFT JOIN语法:
    SELECT column_names
    FROM table_name1
    LEFT JOIN table_name2
    ON table_name1.column_name = table_name2.column_name
    • RIGHT JOIN语法:
    SELECT column_names
    FROM table_name1
    RIGHT JOIN tale_name2
    ON table_name1.column_name = table_name2.column_name
    • FULL JOIN语法:
    SELECT column_names
    FROM table_name1
    FULL JOIN table_name2
    ON table_name1.column_name = table_name2.column_name

    Question:

    Table: Person

    +-------------+---------+
    | Column Name | Type    |
    +-------------+---------+
    | PersonId    | int     |
    | FirstName   | varchar |
    | LastName    | varchar |
    +-------------+---------+
    PersonId is the primary key column for this table.
    

    Table: Address

    +-------------+---------+
    | Column Name | Type    |
    +-------------+---------+
    | AddressId   | int     |
    | PersonId    | int     |
    | City        | varchar |
    | State       | varchar |
    +-------------+---------+
    AddressId is the primary key column for this table.
    

    Write a SQL query for a report that provides the following information for each person in the Person table, regardless if there is an address for each of those people:

    FirstName, LastName, City, State
    

    Analysis:

    写一个SQL语句, 返回Person表格中的以下信息,不管这些people是否有住址信息。

    使用上面的LEFT JOIN语句。

    Answer:

    select Person.FirstName, Person.LastName, Address.City, Address.State
    from Person
    left join Address
    on Person.PersonId = Address.PersonId;

      

  • 相关阅读:
    鼠标事件大全
    jpa仓库接口
    mysql从一个表中拷贝数据到另一个表中sql语句
    mybatis中为sql中传值#{}和${}的区别
    @Autowired与@Resource的区别
    sping配置文件中引入properties文件方式
    Mybatis中实体类中的字段跟对应表的字段不一致时解决办法
    eclispe输入@注解时提示所有注解的设置
    eclipse中如何设置tomcat启动时间
    log4j的使用
  • 原文地址:https://www.cnblogs.com/little-YTMM/p/5245702.html
Copyright © 2020-2023  润新知