从存储过程连接并返回表

时间:2017-08-13 12:17:01

标签: sql-server tsql

我的模特是

ID
Name
DOB
Favourite Foods

最喜欢的食物是一个清单。我目前有自己定义的表类型,

CREATE TYPE [dbo].[FoodList] 
    AS TABLE 
       (
            [Food] NVARCHAR(30) NOT NULL,
            PRIMARY KEY CLUSTERED([Food] DESC)
       )

我当前的选择看起来像这样

SELECT TOP 20 p.Id, p.Name, p.DOB 
FROM dbo.People p

两个表格PeoplePeopleFood - 后者是我需要进行加入的地方,它在People.Id上有一个FK

我知道我需要返回@FoodList,但我根本不知道如何填充它。

预期输出

¦ ID ¦ Name ¦ DOB ¦ Favourite Foods (returned as @FoodList) ¦
¦ 1  ¦ TIM  ¦ --  ¦ Pizza, Fries                            ¦
¦ 3  ¦ BOB  ¦ --  ¦ Fries, Burgers, Chilli                  ¦

表格

¦ ID ¦ Name ¦ DOB ¦
¦ 1  ¦ TIM  ¦ --  ¦
¦ 2  ¦ JOE  ¦ --  ¦
¦ 3  ¦ BOB  ¦ --  ¦

食品

¦ PersonId ¦ Food    ¦
¦ 1        ¦ Pizza   ¦
¦ 1        ¦ Fries   ¦
¦ 3        ¦ Fries   ¦
¦ 3        ¦ Burgers ¦
¦ 3        ¦ Chilli  ¦

0 个答案:

没有答案