0

個人に関する情報を格納するためのテーブルが 2 つあります。1 つはユーザー名とアドレス情報を保持し、もう 1 つはユーザー ID への外部キーにリンクされた複数の電話番号を保持します。ここで、ユーザーのみが1行に表示され、電話番号の列にユーザーにリンクされているすべての電話番号がリストされるビューを作成したいと思います。完全参加を試してみましたが、ユーザーが持っている電話番号の数に応じて、同じユーザーが複数回表示されます。

現在、ビューを作成するためのコードは次のようになっています

CREATE VIEW StudentData AS SELECT COALESCE(Students.FirstName + ' ', ' ') + COALESCE(Students.LastName, ' ') AS 'Name', COALESCE(Students.City + ', ', ' ') + COALESCE(Students.国 + ', ', ' ') + COALESCE(Phone.PhoneType, ' ') + COALESCE(Phone.PhoneNumber + ', ', ' ') + COALESCE(Students.StreetAdress + ', ', ' ') + COALESCE( CAST(Students.ZipCode AS varchar(10)), ' ') AS '住所', COALESCE(CAST(Students.Birthdate AS varchar(11)) + ', ', ' ') + COALESCE(Students.StudentType, ' ' ) AS 'Information' FROM Students FULL JOIN Phone ON Students.StudentID = Phone.StudentID

前もって感謝します

4

1 に答える 1

3

これは文字列連結の問題です。クエリは、SQL Server では次のようになります。

create view v_userphone
    select u.username, u.address,
           stuff((select ','+phonenumber
                  from userphone up
                  where up.userid = u.userid
                  for xml path ('')
                 ), 1, 1, ''
                ) as phonenumbers
    from users u;
于 2013-09-11T10:58:30.140 に答える