连接SQL Server表
电影 电影ID连接SQL Server表,sql,sql-server,tsql,Sql,Sql Server,Tsql,电影 电影ID 标题 价值观: 1.“黑社会进化” 2.‘被拿走了’ 类别 类别 姓名 价值观: 1.“行动” 2.“恐怖” 3.“戏剧” 4.‘悬念’ 关联表: 电影分类 电影ID 电影分类 价值观: 电影分类 11 12 21 二十四 有没有一种方法可以通过连接这三个表来生成这样的输出: 电影标题分类 1地下世界进化行动,恐怖 悬念 (select a.Store, a.Id, a.Title, a.Publisher, a.Serial
- 1.“黑社会进化”
- 2.‘被拿走了’
- 1.“行动”
- 2.“恐怖”
- 3.“戏剧”
- 4.‘悬念’
- 电影ID
- 电影分类
12
21
二十四 有没有一种方法可以通过连接这三个表来生成这样的输出: 电影标题分类
1地下世界进化行动,恐怖
悬念
(select
a.Store,
a.Id,
a.Title,
a.Publisher,
a.SerialNo,
max(a.cat1) + max(a.cat2) + max(a.cat3) + max(a.cat4) + max(a.cat5) Genre,
a.Rate,
a.ReleaseDate,
a.MovieStatus
from
(select
m.Id,
m.Title,
p.Name Publisher,
case
when mc.Description like 'Action' then mc.Description + ', ' else '' end cat1,
case
when mc.Description like 'Comedy' then mc.Description + ', ' else '' end cat2,
case
when mc.Description like 'Drama' then mc.Description + ', ' else '' end cat3,
case
when mc.Description like 'Horror' then mc.Description + ', ' else '' end cat4,
case
when mc.Description like 'Suspense' then mc.Description + ', ' else '' end cat5,
mis.SerialNo,
mr.Description Rate,
m.ReleaseDate,
ms.Description MovieStatus,
s.Name Store
from MovieCategoryMovie mcm
inner join Movie m
on mcm.MovieId like m.Id
inner join MovieCategory mc
on mc.Id like mcm.MovieCategoryId
inner join Publisher p
on m.PublisherId like p.Id
inner join MovieRate mr
on m.MovieRateId like mr.Id
inner join MovieInStore mis
on mis.MovieId like m.Id
inner join Store s
on mis.StoreId like s.Id
inner join MovieStatus ms
on ms.Id like mis.MovieStatusId
where s.Name like @store
group by
m.Id,
m.Title,
mcm.MovieId,
mcm.MovieCategoryId,
p.Name,
mr.Description,
m.ReleaseDate,
mc.Description,
ms.Description,
s.Name,
mis.SerialNo
) as a
这段代码来自我的存储过程,它完成了我所说的输出
我已经尝试过使用case语句,但我不知道这是否是唯一的方法,因为我认为它看起来不太好。希望有人能帮助我。谢谢
SELECT
[MovieID], [Title],
STUFF(
(SELECT ', ' + b.[Title]
FROM MovieCategory a
INNER JOIN Category b
On a.CategoryID = b.MovieID
WHERE a.[MovieID] = d.[MovieID]
FOR XML PATH (''))
, 1, 1, '') AS CategoryList
FROM Movie AS d
GROUP BY [MovieID], [Title]