• MYSQL 从头开始-2(join)


    join的类型

    简单介绍下内外连接的做法

    1.  内联结:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结。

    2.  外联结:分为外左联结和外右联结

    NAME_EMPLOYEE
    yoyo
    golyoung
    NAME_MANAGER
    ychen
    golyoung

    内链接查询语句

    select * from NAME_EMPLOYEE, NAME_MANAGER where NAME_EMPLOYEE.name = NAME_MANAGER.name;(table_reference条目中的每个逗号都看作相当于一个内部联合
    SELECT * FROM NAME_EMPLOYEE JOIN NAME_MANAGER ON NAME_EMPLOYEE.name= NAME_MANAGER.name; SELECT * FROM NAME_EMPLOYEE INNER JOIN NAME_MANAGER ON NAME_EMPLOYEE.name = NAME_MANAGER.name; SELECT * FROM NAME_EMPLOYEE CROSS JOIN NAME_MANAGER ON NAME_EMPLOYEE.name = NAME_MANAGER.name; SELECT * FROM NAME_EMPLOYEE STRAIGHT_JOIN NAME_MANAGER ON NAME_EMPLOYEE.name = NAME_MANAGER.name;

    查询结果只显示一条golyoung golyoung的数据,因为这个数据满足查询条件,2张表都有这个数据。

    • 默认的JOIN都是INNER JOIN
    • CROSS JOIN从语法上说与INNER JOIN等同
    • STRAIGHT_JOIN与JOIN相同。除了有一点不一样,左表会在右表之前被读取。STRAIGH_JOIN可以被用于这样的情况,即联合优化符以错误的顺序排列表。

    外联结

    SELECT * FROM NAME_EMPLOYEE LEFT JOIN NAME_MANAGER ON NAME_EMPLOYEE.name=NAME_MANAGER.name;

    查询结果是

    +----------+-----------+
    | name     | name      |
    +----------+-----------+
    |yoyo        | NULL    |
    | golyoung | golyoung  |
    +-----------+----------+

    右联结 使用right join, 结果相反。

  • 相关阅读:
    不依赖OFFICE组件实现带图片的EXCEL导出
    关于安装SQL的错误
    Web开发学习点滴(持续更新)
    窗体间传值汇总
    沈阳.NET俱乐部MSN群开张了。。。
    VoIP协议标准浅析
    名词解释
    创建和运行一个解决方案
    400电话为什么叫免费电话?
    XPO基础简化的属性语法:
  • 原文地址:https://www.cnblogs.com/chenyao/p/3010054.html
Copyright © 2020-2023  润新知