mysql数据库的左连接,右连接,内链接。有何区别

 我来答

答题抽奖

首次认真答题后

即可获得3次抽奖机会,100%中奖。

更多问题
2个回答
最佳答案
loveyurui
来自电脑网络类芝麻团 推荐于2017-04-20
loveyurui
采纳数:1008 获赞数:6021 LV12
擅长:武汉市 数据库DB 操作系统/系统故障 诗歌 服务器软件
参与团队:数据库百度知道
向TA提问 私信TA
展开全部
一般所说的左连接,外连接是指左外连接,右外连接。做个简单的测试你看吧。
先说左外连接和右外连接:
[TEST1@orcl#16-12月-11] SQL>select * from t1;

ID NAME
---------- --------------------
1 aaa
2 bbb

[TEST1@orcl#16-12月-11] SQL>select * from t2;

ID AGE
---------- ----------
1 20
3 30
左外连接:
[TEST1@orcl#16-12月-11] SQL>select * from t1 left join t2 on t1.id=t2.id;

ID NAME ID AGE
---------- -------------------- ---------- ----------
1 aaa 1 20
2 bbb
右外连接:
[TEST1@orcl#16-12月-11] SQL>select * from t1 right join t2 on t1.id=t2.id;

ID NAME ID AGE
---------- -------------------- ---------- ----------
1 aaa 1 20
3 30

从上面的显示你可以看出:左外连接是以左边的表为基准。通俗的讲,先将左边的表全部显示出来,然后右边的表id与左边表id相同的记录就“拼接”上去,比如说id为1的记录。如果没有匹配的id,比如说t1中id为2的t2中就没有。那边就以null显示。
右外连接过程正好相反。

再看内连接:
[TEST1@orcl#16-12月-11] SQL>select * from t1 inner join t2 on t1.id=t2.id;

ID NAME ID AGE
---------- -------------------- ---------- ----------
1 aaa 1 20

看到没有? 只有一条记录。内连接就是只取出符合过滤条件的记录 也就是t1.id=t2.id 那么符合t1.id=t2.id的记录只有id=1这一条,所以只显示一条。 不像外连接,是将你作为基准的表(左外连接就是左边表为基准,右外连接就是右边表为基准)的所有行都显示出来。

综上所述,你应该能明白了吧?如果不明白请留言。
706693676
2011-12-19
706693676
采纳数:34 获赞数:43 LV5
擅长:C/C++ JAVA相关 软件共享 办公软件 数据库DB
向TA提问 私信TA
展开全部
比如关系R和S,合并以后保留R本来要舍弃的左连接,保留S要舍弃的叫右连接。都保留叫外连接。好像没内连接吧
已赞过 已踩过<
评论 收起

为你推荐:

广告

您可能关注的内容

×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消