У меня есть две таблицы для хранения информации о лицах. Один Сохраняет имя пользователя и адрес, а другой содержит несколько телефонных номеров, связанных с внешним ключом, с идентификатором пользователя. Теперь я хочу создать представление, где только я показывал только одну строку и в столбце номера телефона, все телефонные номера, связанные с этим пользователем, должны быть перечислены. Я попробовал Full Join, и он дает мне одного и того же пользователя несколько раз в зависимости от того, сколько телефонного номера у пользователя есть.SQL View Показывает один и тот же идентификатор
Сейчас код выглядит следующим образом для создания представления
CREATE VIEW StudentData AS ВЫБОР COALESCE (Students.FirstName + '', ' ') + COALESCE (Students.LastName,'') AS 'Name', COALESCE (Students.City + ',', '') + COALESCE (Students.Country + ',', '') + COALESCE (Phone.PhoneType, '') + COALESCE (Phone.PhoneNumber + ',', '') + COALESCE (Students.StreetAdress + ',', '') + COALESCE (CAST (Students.ZipCode AS varchar (10)), '') AS 'Адрес', COALESCE (CAST (учащиеся .Birthdate AS varchar (11)) + ',', '') + COALESCE (Students.StudentType, '') AS 'Information' от студентов полного соединения телефона на Students.StudentID = Phone.StudentID
Спасибо заранее
Есть несколько пустых способов сделать это (обычно это зависит от особенностей системы баз данных, поэтому, пожалуйста, добавьте тег для вашей РСУБД). Было бы лучше, если возможно, сделать это * форматирование * на другом уровне, а не пытаться сделать это в базе данных. –
с помощью STUFF это может быть выполнено. – Sasidharan
@UpvoteMarkAnswer - Мне всегда смешно, что люди фокусируются на 'STUFF' как на« волшебном »способе сделать это, когда на самом деле все, за что отвечает вызов« STUFF' », - это обрезка ведущая запятая. Это часть 'xml path', которая больше отвечает за конкатенацию. –