请教一个关于连接的问题

sailer_shi 2004-07-21 04:14:47
请问用连接查询数据库和用Where 两个表中的字段相等 有什么区别?
还有:INNER JOIN 和left JOIN 在查询时有什么区别?
...全文
136 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
river6023 2004-07-31
  • 打赏
  • 举报
回复
用外部连接(inner join)查询数据库和用Where 两个表中的字段相等查询,基本上相等,区别不是太大.
inner join是内部连接,如果两个来源表的相关字段满足连接条件,则从这两个表中提取数据并组合成新的记录。
outer join是外部连接,它分两种:
1、左边外部连接(left join)
from 表1(主表) left[outer] join 表2(从表)on 条件表达式(主表与从表之间的连接条件)
2、右边外部连接(right join)
from 表1(从表) right[outer] join 表2(主表)on 条件表达式(主表与从表之间的连接条件)

在使用这两种外部连接时除了返回内部连接的记录外,还在查询结果中显示主表中不符合连接条件的记录。主要区别在于主表的位置不同,可根据不同需要选择其中一种。



sailer_shi 2004-07-31
  • 打赏
  • 举报
回复
自己顶起来
wwwer1 2004-07-31
  • 打赏
  • 举报
回复
举例说,如过你要查找某班所有学生考试的成绩(就算有的学生没有考试也要列出他的记录)

现在有2个表:A 存放学生姓名(name) 和 班级号(classID)
B 存放学生姓名(name)和 成绩 (record)

那么sql= select * from A left join B on A.name=B.name

如果你用 select * from A,B where A.name=B.name 的话,就显示不出没有参加考试的人的记录

明白了吗?明白了就结帐
ShiStone 2004-07-23
  • 打赏
  • 举报
回复
不懂,帮你顶一下
sailer_shi 2004-07-22
  • 打赏
  • 举报
回复
求大家了,给我个答案吧
sailer_shi 2004-07-21
  • 打赏
  • 举报
回复
TRANSFORM这个东东是干什么用的?
sailer_shi 2004-07-21
  • 打赏
  • 举报
回复
联机丛书当然看过了,但是说得不明白

where和left join 不同在什么地方呢?
netcoder 2004-07-21
  • 打赏
  • 举报
回复
select * from b,a where a.ID=b.ID
=
select * from b inner join a on a.ID=b.ID
左连接同楼上
zhangzs8896 2004-07-21
  • 打赏
  • 举报
回复
left join
是要把左边表的记录都查出来,如果右边表没数据,则用null代替
skyboy0720 2004-07-21
  • 打赏
  • 举报
回复
楼主可以先看看联机丛书!
zheninchangjiang 2004-07-21
  • 打赏
  • 举报
回复
where 和inner join 差不多吧
left join 不同

34,590

社区成员

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

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