当前在线人数17767
首页 - 分类讨论区 - 电脑网络 - 数据库版 - 同主题阅读文章

此篇文章共收到打赏
0

  • 10
  • 20
  • 50
  • 100
您目前伪币余额:0
未名交友
[更多]
[更多]
有关论文引用的SQL
[版面:数据库][首篇作者:didadida] , 2018年07月07日11:06:00 ,1035次阅读,1次回复
来APP回复,赚取更多伪币 关注本站公众号:
[分页:1 ]
didadida
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 1 ]

发信人: didadida (滴滴嗒嗒), 信区: Database
标  题: 有关论文引用的SQL
发信站: BBS 未名空间站 (Sat Jul  7 11:06:00 2018, 美东)

...
论文10引用了论文 2
论文11引用了论文 1,2,10

等等
假设10之前的文章没有引用别的 ...
每个论文引用多个以前的论文,也可能被多个以后的论文引用

数据表

论文  引用了
10    2
11    1
11    2
11    10
....

现在要求得到加工后的是这样,比如对论文11,原始引用了3个论文(1,2,10),但
是10引
用了2,所以只保留 1,10.就是说如果论文A引用了论文C,也引用了B,如果B引用了C
,那么只保留论文A对B的引用,引文从C到A并不仅仅是直接的路径。或者(不科学地)
说孙子有其爸爸的Y染色体,也有其爷爷的Y染色体,结果集只保留孙子对其爸爸(跟论
文引用论文不完全吻合,因为不是多对多,是树,不是论文的网络)

SQL结果的数据是
论文 引用了

10   2
11   1
11  10



编程的话,可以把整个表看成图,遍历每个记录,比如   11 引用 2  (2-->11),可
以变换方向(11-->2),那么就形成了回路(11-->2-->10-->11),这个记录就加“删除”
tag。形不成回路,说明是'直接'的引用。

问题:如何用SQL形成结果集?


--
※ 修改:·didadida 於 Jul  7 11:10:41 2018 修改本文·[FROM: 71.]
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 71.]

 
anmitbbsguy
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 2 ]

发信人: anmitbbsguy (a bbs guy), 信区: Database
标  题: Re: 有关论文引用的SQL
发信站: BBS 未名空间站 (Sun Jul  8 10:57:17 2018, 美东)

假设你的表是E(a,b), 有数据
10    2
11    1
11    2
11    10

SELECT t1.a, t2.b
FROM E t1 JOIN E t2 ON t1.b = t2.a

就会得到中间数据
11    2

然后再从E中去掉中间数据即可.
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 147.]

[分页:1 ]
[快速返回] [ 进入数据库讨论区] [返回顶部]
回复文章
标题:
内 容:

未名交友
将您的链接放在这儿

友情链接


 

Site Map - Contact Us - Terms and Conditions - Privacy Policy

版权所有,未名空间(mitbbs.com),since 1996