我正在使用SQLServer 2008,我有兩個表 - 一個是帶有關聯ID的文件列表,另一個是帶有關聯FILE_ID的作者列表。在作者表中,可以有許多具有相同FILE_ID的作者。我想查詢兩個表,並將所有與一個文件中的文件關聯的作者的記錄返回到一個記錄中sql server一對多加入
0
A
回答
0
我看不出有什麼辦法做到這一點。我認爲沒有明顯的方式去做它的原因是它違反了關係設計的整個概念。如果不知道你的理由是否希望返回一條記錄,我只能建議你重新考慮你的方法。
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
相關問題
- 1. Oracle sql一對多加入
- 2. SQL加入一對多 - 多個表
- 3. SQL一個一對多的加入/總
- 4. SQL Server加入
- 5. 多對多關係自我加入SQL Server 2008
- 6. SQL模型(一對多),在SQL Server 2005
- 7. SQL:外部加入一對多關係
- 8. SQL加入一對多關係
- 9. SQL左外部加入一對多行
- 10. SQL Server多個LEFT JOIN,一對多
- 11. 加入一個表,兩個一一對多的關係表中的SQL Server
- 12. 多加入子查詢的SQL Server 2008
- 13. 加入多個表中的SQL Server
- 14. 多表內部加入SQL Server R2
- 15. 一個一對多加入
- 16. SQL Server:加入uniqueidentifier
- 17. CASE加入SQL Server
- 18. SQL Server左加入
- 19. SQL Server多對多查詢
- 20. 加入多對一
- 21. 如何從一列增加一列插入多行 - sql server
- 22. SQL和加入SQL Server 2005
- 23. Linq to SQL一對多對多關係加入
- 24. 加入多一個一對多的LINQ表到SQL
- 25. SQL Server 2008 XQuery一對多問題
- 26. 多對多SQL查詢加入
- 27. sql多對多選擇與加入
- 28. Linq to sql。多對多表加入
- 29. SQL Server:在一個表中加入
- 30. SQL Server加入多列連接在一起
http://msdn.microsoft.com/en-us/library/ms187518.aspx(外連接) – 2011-04-27 18:50:59
當你說:「所有與一個記錄中的文件相關的作者」,你的意思是你想連接一個記錄上的所有作者信息? – Lamak 2011-04-27 19:13:16
是的拉瑪克,我的意思是。我想爲每個文件返回一行。當我進行連接時,我希望所有與文件關聯的作者都返回到同一條記錄中 – 2011-04-28 16:29:40