zoukankan      html  css  js  c++  java
  • mysql多表查询方法(join)

    表A记录如下: 
    aID aNum 
    1 a20050111 
    2 a20050112 
    3 a20050113 
    4 a20050114 
    5 a20050115 

    表B记录如下: 
    bID bName 
    1 2006032401 
    2 2006032402 
    3 2006032403 
    4 2006032404 
    8 2006032408 

    创建这两个表SQL语句如下: 
    CREATE TABLE a 
    aID int( 1 ) AUTO_INCREMENT PRIMARY KEY , 
    aNum char( 20 ) 

    CREATE TABLE b( 
    bID int( 1 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , 
    bName char( 20 ) 


    INSERT INTO a 
    VALUES ( 1, 'a20050111' ) , ( 2, 'a20050112' ) , ( 3, 'a20050113' ) , ( 4, 'a20050114' ) , ( 5, 'a20050115' ) ; 

    INSERT INTO b 
    VALUES ( 1, ' 2006032401' ) , ( 2, '2006032402' ) , ( 3, '2006032403' ) , ( 4, '2006032404' ) , ( 8, '2006032408' ) ; 

    实验如下: 
    1.left join(左联接) 

    sql语句如下: 
    SELECT * FROM a 
    LEFT JOIN b 
    ON a.aID =b.bID 

    结果如下: 
    aID aNum bID bName 
    1 a20050111 1 2006032401 
    2 a20050112 2 2006032402 
    3 a20050113 3 2006032403 
    4 a20050114 4 2006032404 
    5 a20050115 NULL NULL 
    (所影响的行数为 5 行) 

    结果说明: 
    left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的. 
    换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID). 
    B表记录不足的地方均为NULL. 

    2.right join(右联接) 

    sql语句如下: 
    SELECT * FROM a 
    RIGHT JOING b 
    ON a.aID = b.bID 

    结果如下: 
    aID aNum bID bName 
    1 a20050111 1 2006032401 
    2 a20050112 2 2006032402 
    3 a20050113 3 2006032403 
    4 a20050114 4 2006032404 
    NULL NULL 8 2006032408 
    (所影响的行数为 5 行) 

    结果说明: 
    仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充. 

    3.inner join(相等联接或内联接) 

    sql语句如下: 
    SELECT * FROM a 
    INNER JOIN b 
    ON a.aID =b.bID 

    等同于以下SQL句: 
    SELECT * 
    FROM a,b 
    WHERE a.aID = b.bID 

    结果如下: 
    aID aNum bID bName 
    1 a20050111 1 2006032401 
    2 a20050112 2 2006032402 
    3 a20050113 3 2006032403 
    4 a20050114 4 2006032

  • 相关阅读:
    Webpack教程二
    Webpack教程一
    整个互联网行业都缺前端工程师?
    Sublime Text 3 搭建 React.js 开发环境
    Javascript的9张思维导图学习
    实现字体外部有描边
    CSS样式重置
    vue使用过滤器 filters:{}
    修改select的默认样式
    onmouseover和onmouseout鼠标移入移出切换图片的几种实现方法
  • 原文地址:https://www.cnblogs.com/xiaofeng028/p/4098969.html
Copyright © 2011-2022 走看看