Это может показаться запутанным и легким. Но я попробовал несколько способов, и это не сработалоSQL Server извлекает список строк из другого списка строк из базы данных
Теперь у меня есть таблица User
с этими столбцами
- Id
- UserId
- FILEID
- Текст
и другая таблица File
- Id
- Имя файла
и третий стол UserDetails
- Id
- Имя
- LastName
User
& File
связаны с использованием внешнего ключа FileId
в соответствие с Id
аналогично User
и UserDetails
связаны с внешним ключом UserId
и Id
.
Так что я создал представление в SQL:
CREATE VIEW [dbo].[vw_NewView] AS
SELECT
U.Text as Text,
UD.Name + ' ' + UD.LastName AS FullName
FROM
User U
LEFT OUTER JOIN
dbo.UserDetails UD on UD.Id = U.UserId
Теперь я получаю результирующий набор:
Text FullName
entry 1 NAme1
entry 2 Name2
Примечание: каждый User
будет связан с одним UserDetails
, т.е. User
имеет одно- к-одному с Userdetails
.
Но User
имеет отношения «один ко многим» с File
, поэтому каждый User
может иметь несколько файлов.
Как я могу получить эти файлы для каждого пользователя?
Что-то вроде этого
Text FullName FileName
entry 1 NAme1 File1
File2
entry 2 Name2 File1
File2
File3
Эй Devart!спасибо за код, но я был бы признателен, если бы вы могли объяснить, что вы сделали .., поскольку я не знаю. Почему вы положили «[]» вокруг текста и файла. Дальнейшее руководство. –
Прежде всего, пожалуйста, проверьте «ROW_COUNT» ... мы просто подсчитываем строки каждому пользователю и предоставляем значения только для первой строки. '[]' просто хороший стиль кода ... используйте квоту для системных слов, таких как 'table',' column', 'text' и т. д. – Devart
Эй, это точно не работало так, как мне хотелось, но спасибо. :) –