我在編寫MySQL查詢時遇到了一些麻煩。也許你可以幫助我。MySQL查詢合作者網絡
我需要知道作者多長時間一次與另一位作者寫書/文本。我打算使用這些數據來構建一個顯示共同作者一起工作的圖表。
結果應該是這樣的:
AuthorID CoauthorID count
01111 02222 5
02222 03333 1
...
由於我在MySQL相對沒有經驗,我不知道如何做到這一點。我的猜測是它需要某種交叉表/矩陣。另一個問題來自於從共同的著者無向性質:
author1 --- author2
等同於:
author2 --- author1
不過,我需要這兩個作家一起工作的數量,以便查詢要總結這件事如:
author1 --- author2 --- count: 2
這是我的數據庫結構的一部分:
* = primary key
# = unique
table 'Texts'
-------------
#TextID
*Title
*Year
...
table 'Persons'
---------------
#AuthorID
*Name
*Birth
...
table 'Authorship'
------------------
*AuthorID
*TextID
我感謝您的幫助。提前致謝!
-Andi
如果3周或更多的作者在文本協作會發生什麼?你的模型如何解釋? –
由於表'Authorship'的PK由AuthorID和TextID組成,我可以爲每個文本輸入2個以上的作者。這有問題嗎? – kabauter