left join的一个奇怪问题。特奇怪。

此昵称已经1存在 2008-05-23 01:33:41
1.select a.* from view2 a
2.select a.* from view2 a left join nodeinfor b on a.nodeno=b.physical_nodeno

第1得出的是6077行。
理论2是左连接,得出的也应是6077行,那为什么得出的却是8213行??
很奇怪。left join得出的不是满足左的全出现就可以了吗???
谁能解决,谢了。
...全文
45 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
是的,理解了这个意思了,谢谢了。
  • 打赏
  • 举报
回复
有多项符合了a了,造 成了a是多的了,所以会出现多少,明白了。谢大家了。
blazingfire 2008-05-23
  • 打赏
  • 举报
回复
不解决,是解答或解释!
这样结果是正确的。因为有这种情况,在nodeinfor中可能有多条对应view2中一条记录,满足a.nodeno=b.physical_nodeno条件。所以
返回的结果集中View2的有些记录出现多次。如果不想这样,可以这样修改2的SQL
select distinct a.* from view2 a left join nodeinfor b on a.nodeno=b.physical_nodeno

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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