• mysql 多表连接查询


    创建所需要的表

    -- 创建t1,t2表
    create table t1(
    	key1 varchar(20),
        v1 int(4)
        );
        
    ##导入数据,,数据不可以存储在有中文字符的路径下面
    load data local infile 'E:/data/t1.csv' 
    	into table t1
        fields terminated by ','
        ignore 1 lines;
        
    select * from t1;
        
    create table t2(
    	key2 varchar(20),
        v2 int(4)
        );
    
    load data local infile 'E:/data/t2.csv' 
    	into table t2
        fields terminated by ','
        ignore 1 lines;
    

      -- 左连接、右连接以及内连接

    ##左连接
    
    select * from t1 left join t2 on t1.key1 = t2.key2;
    
    ##右连接
    
    select *  from t1 right join t2 on  t1.key = t2.key2;
    
    ##内连接
    
    select * from t1 inner join t2 on  t1.key1  =  t2.key2;
    
    
    ##合并查询
    
    select * from t1
    union     ##消除重复的字段  union     不消除重复字段用   union all
    select * from t2;
    
    
    
    
    -- 笛卡尔积:select 字段1[,…] from 表1,表2[,…];
    
    select *  from t1,t2;
    
    
    -- 消除笛卡尔积:select 字段1[,…] from 表1,表2[,…] where 表1.key=表2.key;
    select  *  from  t1,t2
    where  t1.key1=t2.key2;
    
    select *  from t1  cross join  t2  on  t1.key1 = t2.key2;   ##交叉连接
    
    ##注意::消除笛卡儿积后和交叉连接的结果相同
    
    ###全连接    在mysql中无全连接,但是可以通过左连接和右连接合并去重得到;
    select * from t1  left join t2  on  t1.key1 = t2.key2
    union 
    select * from t1  right join t2  on t1.key = t2.key2;
    

      

  • 相关阅读:
    【后端】Python学习笔记
    【学习】JennyHui学英语
    【学习】JennyHui学英语
    【英语】Bingo口语笔记(3)
    LoadRunner目录分析
    性能测试常见用语
    [转]黑盒测试用例设计方法
    RUP
    软件质量管理杂谈
    关于BUG
  • 原文地址:https://www.cnblogs.com/manjianlei/p/11278971.html
Copyright © 2020-2023  润新知