首页 > 数据库技术 > 详细

mysql 内连接和外连接查询

时间:2019-11-27 17:20:16      阅读:59      评论:0      收藏:0      [点我收藏+]

一、内连接查询 (笛卡儿积)

内联接查询inner join,mysql可以简写为join

二、外连接查询

左外联接查询left outer join,mysql可以简写为left join
右外联接查询right outer join,mysql可以简写为right join

 

举个栗子:

创建两张表t1,t2,并插入一些数据

create table t1(
    cid varchar(10),
    city varchar(10),
    primary key(cid)
)
insert into t1 values(tedu,bj),(tx,bj),
(jd,sh),(bd,bj)

create table t2(
    id int,
    customer varchar(10),
    primary key(id)
)
insert into t2 values(1,tedu),(2,tedu),(3,tx),(4,jd),(5,Null)

 

1.t1和t2做内联接查询,得到t1和t2的迪卡尔积

select * from t1 join t2;

 

2.在t1和t2的迪卡尔积上做了筛选,筛选的条件就是t1和t2中有关联的列

select * from t1 join t2
on t1.cid = t2.customer;

 

3.在t1和t2筛选过的迪卡尔积上,t1和t2做左外联接查询

select * from t1 left join t2
on t1.cid = t2.customer;

 

4.在t1和t2筛选过的迪卡尔积上,t1和t2做右外联接查询

select * from t1 right join t2
on t1.cid = t2.customer;

 

总结:一.A表和B表内连接就是把A表的每条记录和B表的每条记录做完全组合,如果A表中有4条记录,B表中有5条记录,那么A表和B表内连接后产生的大表就是4*5=20条记录。

           二.外连接是在内连接的基础上加上left或者right,外连接包含两点,例如select * from t1 left join t2  on t1.cid = t2.customer 这样做外连接

     1.t1表中的每条记录都要显示出来,如果在t2没有与之对应的,则显示Null;

              2.t2表中如果有多条记录都可以和t1表中对应,则把这多条记录都显示出来。

mysql 内连接和外连接查询

原文:https://www.cnblogs.com/hooo-1102/p/11943745.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!