映画
値付き:
- 1、「アンダーワールドエボリューション」
- 2、「取られた」
カテゴリー
値付き:
- 1、「アクション」
- 2、「ホラー」
- 3、「ドラマ」
- 4、「サスペンス」
関連付けテーブル:
MovieCategory
- MovieId
- MovieCategoryId
値付き:
MovieId CategoryId
1 1
1 2
2 1
2 4
これらの3つのテーブルを結合することにより、このような出力を作成できる方法はありますか?
MovieId タイトル カテゴリ
1アンダーワールドエボリューションアクション、ホラー
2実行アクション、サスペンス
(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ステートメントを使用してこれを試しましたが、それがそれを行う唯一の方法であるかどうかはわかりません。誰かが私を助けてくれることを願っています。ありがとう!