有4张表,A表主表,A的外键有NULL,要级联出所有数据怎么办“

wolf00781 2010-06-30 08:32:59
select a.name,b.name,c.name from a,b,c,d where a.bid=b.id and b.cid=c.id and c.did = d.id

这是我的SQL,但是a.bid有null值,所有这样的查出来的数据就把null的记录给过滤掉了,我想把null值也给查出来,不知道怎么办,我试了,or a.bid is null但是不行,合并结果集就不要了;

我采用的是hibernate,extjs,其实SQL应该查出来的是select new a(a.b.id,b.name,..) from a,b,c,d where ...
...全文
131 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinlan1022 2010-07-01
  • 打赏
  • 举报
回复
select a.name,b.name,c.name from a,b,c,d where a.bid(+)=b.id and b.cid=c.id and c.did = d.id
lacus87 2010-07-01
  • 打赏
  • 举报
回复
用你不为空的那一边表left join为空的那一边表
ouyangxiaokang6 2010-07-01
  • 打赏
  • 举报
回复
用连接就可以取出来了。
wolf00781 2010-06-30
  • 打赏
  • 举报
回复
对了,a.bid这个字段我可以不设成外键的,
wolf00781 2010-06-30
  • 打赏
  • 举报
回复
a表是日志表, 不为空的是对应的有值,但是为空的对应得没有值,既然是日志,我就要把所有的数据查出来,没有值的也要显示,的左连接不知道如何连接,可以把a表数据全部显示,但是如何左?
hornbill527 2010-06-30
  • 打赏
  • 举报
回复
a.name,b.name,c.name a.bid为空的话,也就是说b.name,c.name都不会有值,跟你整体sql语句的逻辑冲突,a.bid为null时你想要什么数据呢?
ronniegxq 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 rumlee 的回复:]

这是因为你的逻辑本来就有问题,既然是外键就不应该有null啊,外键为null关联什么呢。

除非你明确的告诉程序为null时关联什么,这样就可以了。

或者采用左连接形式。
[/Quote]
ding
rumlee 2010-06-30
  • 打赏
  • 举报
回复
这是因为你的逻辑本来就有问题,既然是外键就不应该有null啊,外键为null关联什么呢。

除非你明确的告诉程序为null时关联什么,这样就可以了。

或者采用左连接形式。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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