n*******e 发帖数: 55 | 1 table A 是一个文件名和文件ID的mapping
Article ID, Article Name
1, A
2, B
3, C
4, D
table B 是文件ID和作者ID的mapping
请问如何能够找出和任意文件ID具有相同作者组合的所有文件ID,谢谢!
Article ID, Author ID
1, 1
1, 2
2, 1
2, 2
3, 1
3, 3
4, 1
4, 4 | b*******y 发帖数: 447 | 2 瞎写一个,用sql server的语法
CREATE TABLE TableB (
ArticleID INT,
AuthorID INT,
PRIMARY KEY (ArticleID, AuthorID)
)
INSERT INTO TableB(
ArticleID,
AuthorID
)
VALUES
(1,1),
(1, 2),
(2, 1),
(2, 2),
(3, 1),
(3, 3),
(4, 1),
(4, 4)
WITH Temp AS
(
SELECT
*,
AUTHORID* POWER(10, ROW_NUMBER() OVER(PARTITION BY ArticleID ORDER
BY AuthorID) )*1.0 AS Digit
FROM TableB
) | c*******e 发帖数: 8624 | 3 table A 没用吧
【在 n*******e 的大作中提到】 : table A 是一个文件名和文件ID的mapping : Article ID, Article Name : 1, A : 2, B : 3, C : 4, D : table B 是文件ID和作者ID的mapping : 请问如何能够找出和任意文件ID具有相同作者组合的所有文件ID,谢谢! : Article ID, Author ID : 1, 1
| c*******e 发帖数: 8624 | 4 这个不对吧,你是把author都编号,然后对每个文件加起来总数一个就算对上了?
比如一篇文章的author有两个,编号分别是2,5;另外一篇文章author编号分别是3,4
这两篇文章作者并不一样
【在 b*******y 的大作中提到】 : 瞎写一个,用sql server的语法 : CREATE TABLE TableB ( : ArticleID INT, : AuthorID INT, : PRIMARY KEY (ArticleID, AuthorID) : ) : INSERT INTO TableB( : ArticleID, : AuthorID : )
| b*******y 发帖数: 447 | 5 所以加了个10的编号次方,
2,5 对应的就是5*10^(2)+ 2*10^(1) = 520
3,4 对应的是430
两个不一样啊
【在 c*******e 的大作中提到】 : 这个不对吧,你是把author都编号,然后对每个文件加起来总数一个就算对上了? : 比如一篇文章的author有两个,编号分别是2,5;另外一篇文章author编号分别是3,4 : 这两篇文章作者并不一样
|
|