某大公司面试题

qsrock 2007-08-30 09:35:12
一个表的字段有id,name,parent_id(父亲的id),查找做爷爷的人!~
写一个SQL语句.
...全文
512 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
hqq01025 2009-02-08
  • 打赏
  • 举报
回复
路过
大公司也会考基础题
whalefish2001 2009-02-06
  • 打赏
  • 举报
回复
问题很简单。
这个在IBM面试里面应该不算是什么复杂问题。
fengxia567 2009-02-05
  • 打赏
  • 举报
回复
select t1.parent_id from table t1 where t1.id in (select t2.parent_id from table t2 where t2.id is not null)
这样对么?
whuzjf1985 2009-02-04
  • 打赏
  • 举报
回复
哈哈 这个题目很有趣
weizhe86 2009-02-04
  • 打赏
  • 举报
回复
select a.id,a.name from table a,table b,table c where a.id=b.parent_id and b.id=c.parent_id;
qhmao 2008-12-25
  • 打赏
  • 举报
回复
mark 下,回去研究,,,
slimboy123 2008-12-24
  • 打赏
  • 举报
回复
select t1.* from table1 t1,
(select ParentID from table1 t2 where exists(select t3.ID from table1 t3 where t3.ParentId=t2.ID)) t4
where t1.ID=t4.ParentID;
chentao19860501 2008-12-24
  • 打赏
  • 举报
回复
解决问题啊
剑心永远OK 2008-12-23
  • 打赏
  • 举报
回复
上面两位,讨论题,干嘛好象吵架啊。。
懒得去死 2008-12-19
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 yangxiao_jiang 的回复:]
引用 17 楼 yueliangdao0608 的回复:
引用 11 楼 yangxiao_jiang 的回复:
引用 9 楼 yueliangdao0608 的回复:
引用 7 楼 yangxiao_jiang 的回复:
为什么要骂?

表中使用递归的情况很普遍,否则你怎么实现在一个表中存储树形结构?


如果你只简单的存储的话,那你就用吧。我就不说了。


IBM内部的项目,很多在数据库中用的就是这种存储方式,我看你真不用说了。


如果他们要查什么树的结构方面了。你说说这个性…
[/Quote]


我好像没有惹你吧?兄弟?


PS:
我没有说我什么都会。
yangxiao_jiang 2008-12-18
  • 打赏
  • 举报
回复
永远有你不会的,不要真的以为自己什么都会了。
yangxiao_jiang 2008-12-18
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 yueliangdao0608 的回复:]
引用 11 楼 yangxiao_jiang 的回复:
引用 9 楼 yueliangdao0608 的回复:
引用 7 楼 yangxiao_jiang 的回复:
为什么要骂?

表中使用递归的情况很普遍,否则你怎么实现在一个表中存储树形结构?


如果你只简单的存储的话,那你就用吧。我就不说了。


IBM内部的项目,很多在数据库中用的就是这种存储方式,我看你真不用说了。


如果他们要查什么树的结构方面了。你说说这个性能如何?
[/Quote]

性能不错,几亿条的记录用不到10秒就可以得到结果集。
懒得去死 2008-12-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 yangxiao_jiang 的回复:]
引用 9 楼 yueliangdao0608 的回复:
引用 7 楼 yangxiao_jiang 的回复:
为什么要骂?

表中使用递归的情况很普遍,否则你怎么实现在一个表中存储树形结构?


如果你只简单的存储的话,那你就用吧。我就不说了。


IBM内部的项目,很多在数据库中用的就是这种存储方式,我看你真不用说了。
[/Quote]

如果他们要查什么树的结构方面了。你说说这个性能如何?
i_saw_you 2008-12-16
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 kevoo 的回复:]
引用 14 楼 kevoo 的回复:
select t.id,t.name from table t where t.id in(select parrent_id,count(*) as num from table a group by parrent_id where num>2) 这个行不


修改一下
[/Quote]很懷疑能不能運行.
码工码工 2008-12-16
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 kevoo 的回复:]
select t.id,t.name from table t where t.id in(select parrent_id,count(*) as num from table a group by parrent_id where num>2) 这个行不
[/Quote]

修改一下
码工码工 2008-12-16
  • 打赏
  • 举报
回复
select t.id,t.name from table t where t.id in(select count(*) as num from table a group by parrentid where num>2) 这个行不
fcoolx 2008-12-15
  • 打赏
  • 举报
回复
这公司 要你 你也不要去 学不到东西的
pengyanq520 2008-12-15
  • 打赏
  • 举报
回复
自连接就可以实现了
yangxiao_jiang 2008-12-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yueliangdao0608 的回复:]
引用 7 楼 yangxiao_jiang 的回复:
为什么要骂?

表中使用递归的情况很普遍,否则你怎么实现在一个表中存储树形结构?



如果你只简单的存储的话,那你就用吧。我就不说了。
[/Quote]

IBM内部的项目,很多在数据库中用的就是这种存储方式,我看你真不用说了。
tangtong-xj 2008-12-07
  • 打赏
  • 举报
回复
呵呵,很有意思,看看我这个

select id,name from table_name a
where exists (select id from table_name b
where b.parent_id = a.id
and exists (select id from table_name c where c.parent_id = b.id));
加载更多回复(9)

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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