left,right,inner join有什么区别?

chuanyi 2005-08-05 06:11:26
select * from a inner join b on a.1=b.1
select * from a left/right join b on a.1=b.1
select * from a,b where a.1=b.1
相差很大吗?我每次都查出相同的结果啊,是不是速度上有差别?
...全文
3355 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
GRLD8888 2005-08-05
  • 打赏
  • 举报
回复
举个例子:
假设a表和b表的数据是这样的。
a b
id name  id stock 
1  a 1 15
2 b 2 50
3 c  

select * from a inner join b on a.id=b.id
这个语法是连接查询中的内连接,它产生的结果是
两个表相匹配的记录出现在结果列表中。
根据上面的表,出现的结果是这样的
a.id name b.id stock
1   a 1 15
2 b 2 50
----------------------------
select * from a,b where a.id=b.id
这个语法是内连接的另外一种写法,其执行结果与inner join 一样

--------------------------------

select * from a left/right join b on a.id=b.id
这个是外连接语法中的左外连接或右外连接
如果是左外连接的话,它将显示a表的所有记录,
select a.*,b.* from a left join b on a.id=b.id
查询的结果是这样的:
a.id name b.id stock
1   a 1 15
2 b 2 50
3 c null null 
--------------------------------------------
如果是右外连接的话,它将显示b表的所有记录,
select a.*,b.* from a right join b on a.id=b.id
查询的结果是这样的:
a.id name b.id stock
1   a 1 15
2 b 2 50

rivery 2005-08-05
  • 打赏
  • 举报
回复
查询分析器-》帮助-》Transact-sql帮助,索引输入inner jion。
zhaoliang_chen 2005-08-05
  • 打赏
  • 举报
回复
楼上的兄弟:cross join返回的是迪卡尔积结果
flamezzh 2005-08-05
  • 打赏
  • 举报
回复
left返回的是左连接结果,right 返回右连接结果,inner join返回的是迪卡尔积结果
MorningTea 2005-08-05
  • 打赏
  • 举报
回复
ft
既然会查询,联机手册还不知道在哪里吗?
chuanyi 2005-08-05
  • 打赏
  • 举报
回复
聯機手冊在哪裏?是什麽東西?
vivianfdlpw 2005-08-05
  • 打赏
  • 举报
回复
看联机手册

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧