我对SQL和存储过程一般都很陌生,我需要帮助创建一个从数据库中获取数据的存储过程。
这是我的e-r图
我需要做的是为所有当前登录的客户购买所有租借的电影。
以下是示例:
客户:
Id: 1
Name: Jack
Last name: Jackson
Id: 2
Name: John
Last name: Jankins
电影
Id: 1
Title: Logan
Serial num: 19946519
Id: 2
Title: Shutter island
Serial num: 23456519
Id: 3
Title: Pulp fiction
Serial num: 11934857
结果:
RentedMovies
Id: 1
Name: John
Last name: Jankins
Title: Logan
Serial num: 19946519
Category: Action
Type: Limited release
Id: 2
Name: John
Last name: Jankins
Title: Shutter island
Serial num: 23456519
Category: Mystery
Type: Limited release
我不确定RentedMovies
是否都应该具有1的Id,但我认为你可以了解我想要实现的目标。
这是我到目前为止所做的,但它不起作用。另外我不知道如何让它作为JSON返回。
SELECT
rm.id, c.name, c.lastName, m.title, m.serialNumber, cat.category, t.type
FROM
RentedMovies rm
INNER JOIN
Customer c ON c.id = rm.fk_Customer,
INNER JOIN
Movies m ON m.id = rm.fk_Movie
INNER JOIN
Category cat ON cat.id = mc.fk_Category
INNER JOIN
Type t ON t.Id = mt.fk_Type
WHERE
c.id = Id;
我真的很感谢你的帮助!
PS:这是一个ASP.NET MVC应用程序,结果应该基于用户当前登录的ID,后者从代码隐藏中传递。
答案 0 :(得分:4)
这应该有效!
Create Proc RentedFilms (
@ID
) AS
SELECT
CM.id
,CM.name
,CM.lastName
,MV.title
,MV.serialNumber
,CG.category
,TP.type
FROM RentedMovie RM
LEFT JOIN Customer CM on RM.fk_Customer=CM.id
LEFT JOIN Movie MV on RM.fk_Movie=MV.id
RIGHT JOIN MovieCategory MC on MC.fk_Movie=MV.id
LEFT JOIN Category CG on CG.id=MC.fk_Category
RIGHT JOIN MovieType MT on MT.fk_Movie=MV.id
LEFT JOIN Type TP on TP.id=MT.fk_Type
WHERE CM.id=@ID
FOR JSON AUTO