我正在使用SQLServer 2008,我有两个表 - 一个包含具有关联ID的文件列表,另一个包含具有关联FILE_ID的作者列表。在authors表中,可能有许多作者具有相同的FILE_ID。我想查询两个表并返回记录,其中所有作者都与一个记录中的文件相关联
答案 0 :(得分:0)
我看不到任何办法。我认为没有明显的方法可行的原因是它违反了关系设计的整个概念。如果不知道你想要返回一条记录的原因是什么,我只能建议你重新考虑你的方法。
答案 1 :(得分:0)
提供样本数据和预期结果通常很有用;听起来你正在寻找一个串联解决方案,它将类似于:
DECLARE @files TABLE (ID int, fName varchar(100))
DECLARE @authors TABLE (ID int, fileID int, aName varchar(100))
INSERT INTO @files (ID, fName)
VALUES (1, 'file1'), (2, 'file2')
INSERT INTO @authors (ID, fileID, aName)
VALUES (1, 1, 'author1'),
(2, 1, 'author2'),
(3, 1, 'author3'),
(4,2, 'author4')
SELECT fName,
authors = STUFF((SELECT ',' + aName FROM @authors a WHERE a.FileID = f.ID FOR XML PATH('')), 1, 1, '')
FROM @files f