首页 新闻 搜索 专区 学院

left join 和join 引发的问题

0
悬赏园豆:40 [已解决问题] 解决于 2013-09-08 09:14

select b from BusiOrder b left join b.createrUser cu join b.updateUser up join b.good gs join b.company cp

left join 一个对象 和join 一个对象 有问题吗

 

 

company 的关联id companyid都为null 
这样关联 一个对象会出问题吗 影响查询数据结果集吗
76晴的主页 76晴 | 初学一级 | 园豆:8
提问于:2013-09-03 15:38
< >
分享
最佳答案
0

left join是左外联,是LEFT OUTER JOIN ,join就是简单的内联(INNER JOIN)。

写内联和外联的时候后面要有ON语句,是连接的条件。例如Order表和User表联,SELECT Order.Code,User.Name FROM Order JOIN User ON Order.UserId = User.Id.

当Order表里的UserId和User表里的Id不能完全匹配,两个join语句结果就不一样了,如果Order 001的UserId,在User表里没有Id与它匹配,Order左外联User时结果会有 001这个订单的信息,只是对应User信息是空的;如果内联的话,匹配不上的行就不返回了。外键是 NULL的话,也是匹配不上。

JOIN有几种(INNER JOIN、LEFT OUTER JOIN、RIGHT OUTER JOIN、FULL OUTER JOIN  CROSS JOIN),自己做几条数据试一下就明白了,请参阅:

http://technet.microsoft.com/zh-cn/library/ms174853(v=sql.90).aspx

收获园豆:30
C#开发人员 | 初学一级 |园豆:181 | 2013-09-03 16:51
其他回答(5)
-1

你这语句我表示看不懂、、、、

丫的 | 园豆:1575 (小虾三级) | 2013-09-03 15:48

咋看不懂 关联查询我写的不对吗 关联对象中的对象

支持(0) 反对(0) 76晴 | 园豆:8 (初学一级) | 2013-09-03 15:56
0

left join后面的都可以为null

如果不希望left join后面的为null,应该把left join放到最后面

收获园豆:10
田林九村 | 园豆:2367 (老鸟四级) | 2013-09-03 16:11
0

有 join 没 on

geass.. | 园豆:1777 (小虾三级) | 2013-09-03 17:53
0

我表示,如果你的语句能执行,我就该再回学校学习几年~

幻天芒 | 园豆:36781 (高人七级) | 2013-09-03 20:22

那你自己想吧 还这么较真 没看到上面回复 吗不明白也是

支持(0) 反对(0) 76晴 | 园豆:8 (初学一级) | 2013-09-03 20:52
0

要学会自己思考  能不能运行和有什么区别  自己运行一下就知道结果了。

Albert Fei | 园豆:2102 (老鸟四级) | 2013-09-03 22:02

重要是返回的结果集

支持(0) 反对(0) 76晴 | 园豆:8 (初学一级) | 2013-09-04 15:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册