Sql-Server
當我從外鍵約束中選擇不同的值時,結果重複
我想從兩個不同的表中選擇值,它們之間有一對多的關係。在選擇期間,即使我使用
distinct
和分組,它也會檢索重複值。上表是person table
,下表是address
。
這是一個如何實現的範例
--demo setup Declare @Table1 table (id int, name varchar(20), lastname varchar(20), imageshortpath varchar(100), imagefullpath varchar(100)) insert into @Table1(id, name, lastname, imageshortpath, imagefullpath) values (2108,'mudasir', 'khan','imageshortpath','imagefullpath') Declare @Table2 table (id int, peopleid int, address varchar(20)) insert into @Table2(id, peopleid,address) values (1,2108,'hyderabad'),(2,2108,'larkana') --solution select t1.*, STUFF(( SELECT ',' + address FROM @Table2 t2 WHERE t2.peopleid = t1.id FOR XML PATH('') ), 1, 1, '') AS Address from @Table1 t1
| id | name | lastname | imageshortpath | imagefullpath | Address | |------|---------|----------|----------------|---------------|-------------------| | 2108 | mudasir | khan | imageshortpath | imagefullpath | hyderabad,larkana |
查看這個關於Stuff 和 ‘For Xml Path’ 如何在 Sql Server 中工作的出色答案。