zoukankan      html  css  js  c++  java
  • mysql多表联合查询

    转自:http://www.cnblogs.com/Toolo/p/3634563.html

    多表连接,小分三种(笛卡尔积、内连接、外连接),多分五种

    (笛卡尔积、内连接、左连接、右连接、全连接(mysql可能没有))

    MySQL的多表查询(笛卡尔积原理)

     
    1. 先确定数据要用到哪些表。
    2. 将多个表先通过笛卡尔积变成一个表。
    3. 然后去除不符合逻辑的数据(根据两个表的关系去掉)。
    4. 最后当做是一个虚拟表一样来加上条件即可。

    注意:列名最好使用表别名来区别。

    笛卡尔积

     

    Demo:

    左,右连接,内,外连接

    l             内连接:

    要点:返回的是所有匹配的记录。

    1. select * from a,b where a.x = b.x                                                 ////内连接
    2. select * from a cross join b on a.x=b.x order by a.x  //不同写法的内连接
    3. select * from a inner join b on a.x=b.x order by a.x  //不同写法的内连接

    l             外连接有左连接和右连接两种。

    要点:返回的是所有匹配的记录 外加 每行主表外键值为null的一条记录。辅表所有列为null值。

    1. select * from a left join b on a.x=b.x order by a.x  //左外连接或称左连接
    2. select * from a right join b on a.x=b.x order by a.x  //右外连接或称右连接

    select子句顺序

    子句

    说明

    是否必须使用

    select

    要返回的列或表示式

    form

    从中检索数据的表

    仅在从表选择数据时使用

    where

    行级过滤

    group by

    分组说明

    仅在按组计算聚集时使用

    having

    组级过滤

    order by

    输出排序顺序

    limit

    要检索的行数

  • 相关阅读:
    斗鱼的sidebar的实现简陋的demo
    angular JS中使用jquery datatable添加checkbox点击事件
    angular JS中使用jquery datatable添加ng-click事件
    Redis 中文文档
    操作word的
    Redis作为消息队列服务场景应用案例(入队和出队)
    nopcommerce 商城案例
    net 将手机号码中间的数字替换成星号
    V5客服
    EF 数据库迁移(Migration)
  • 原文地址:https://www.cnblogs.com/lvchenfeng/p/5972451.html
Copyright © 2011-2022 走看看