SOS

xj116 2009-04-26 05:05:23
我做两个表的left join左连接,左表有记录1500条,右表有记录1200条,连接出的新表记录为1612条是自怎么回事啊,按理应该是1500条记录啊,求解?
...全文
104 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
xj116 2009-04-27
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 usher_gml 的回复:]
LEFT JOIN 显示左表的全部数据
RIGHT JOIN 显示右表的全部数据
[/Quote]

楼上的没有把贴子全部看完吧!
usher_gml 2009-04-27
  • 打赏
  • 举报
回复
LEFT JOIN 显示左表的全部数据
RIGHT JOIN 显示右表的全部数据
xj116 2009-04-27
  • 打赏
  • 举报
回复
谢谢楼上各位的解答,我只想要左表中的数据怎么写语句啊?
JonasFeng 2009-04-27
  • 打赏
  • 举报
回复
楼主跟我以前一样,
以前学的时候一直认为LFET JOIN 就是查出来的结果跟左表的记录数一样。

后来也发生过这样的问题。

就是关联的右表有满足ON条件的重复记录
兔儿爷 2009-04-27
  • 打赏
  • 举报
回复
访问我的博客 程序员日记 http://www.ideaext.com
claro 2009-04-27
  • 打赏
  • 举报
回复
select *
from (select 1 id,'a' col ) a
left join (select 1 id,'b' col union all select 1,'c') b on a.id=b.id
/*
id col id col
1 a 1 b
1 a 1 c
*/
claro 2009-04-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xj116 的回复:]
引用 1 楼 playwarcraft 的回复:
你on的条件,应该是在右表里有相同的记录

比如
A表
id  col
1  a

B表
id  col
1    b
1    c

A left join B on A.id=B.id

就会出来

1  a 1 b
1  a 1 c


如果我只要A表中的记录怎么写语句?
[/Quote]
数据问题。
sdhdy 2009-04-27
  • 打赏
  • 举报
回复
select ta.* from ta left join tb on ta.colname=tb.colname
xj116 2009-04-27
  • 打赏
  • 举报
回复
顶上,求解!
xj116 2009-04-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 playwarcraft 的回复:]
你on的条件,应该是在右表里有相同的记录

比如
A表
id col
1 a

B表
id col
1 b
1 c

A left join B on A.id=B.id

就会出来

1 a 1 b
1 a 1 c
[/Quote]

如果我只要A表中的记录怎么写语句?
wuxiankeneng 2009-04-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 playwarcraft 的回复:]
你on的条件,应该是在右表里有相同的记录

比如
A表
id col
1 a

B表
id col
1 b
1 c

A left join B on A.id=B.id

就会出来

1 a 1 b
1 a 1 c
[/Quote]
最近正在学
  • 打赏
  • 举报
回复
这不一定,如果右表中有多条和左表相对应的话,那么自然会>1500的
htl258_Tony 2009-04-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 happyflystone 的回复:]
右表存在左表在关联条件下的多条记录
[/Quote]正解..
sdhdy 2009-04-26
  • 打赏
  • 举报
回复
--用这条查查,查出来的就是在T2表中对应有超过1条记录的
select t1.* from t1,t2 where t1.id=t2.id having count(1)>1
yzsunlight 2009-04-26
  • 打赏
  • 举报
回复
把具体的SQL语句 写出来看看
不知道你的条件带上没有
sdhdy 2009-04-26
  • 打赏
  • 举报
回复
可能第一个表在第二个表中对应有多条记录的。
-狙击手- 2009-04-26
  • 打赏
  • 举报
回复
右表存在左表在关联条件下的多条记录
playwarcraft 2009-04-26
  • 打赏
  • 举报
回复
你on的条件,应该是在右表里有相同的记录

比如
A表
id col
1 a

B表
id col
1 b
1 c

A left join B on A.id=B.id

就会出来

1 a 1 b
1 a 1 c

34,593

社区成员

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

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