【发布时间】:2016-09-14 05:14:14
【问题描述】:
我的电影/电影管理系统有问题。我有桌子,
表电影
+----+------------------+---------------------------+
| Id | Name | Description |
+----+------------------+---------------------------+
| 1 | Kabaddi Kabaddi |Kabaddi Kabaddi is a... |
| 2 | Kabaddi |Kabaddi is a... |
| 3 | Jholay |A man hopes to achieve... |
| 4 | Nai Nabhannu La | |
+----+------------------+---------------------------+
表角色
+----+----------+
| Id | Name |
+----+----------+
| 1 | Actor |
| 2 | Actress |
| 3 | Director |
+----+----------+
表人
+----+--------------+---------------+-----------+
| Id | FirstName | MiddleName | LastName |
+----+--------------+---------------+-----------+
| 1 | Dayahang | | Rai |
| 2 | Priyanka | | Karki |
| 3 | Nischal | | Basnet |
+----+--------------+---------------+-----------+
表格演员表
+-----------+-----------+-----------+
| FilmId | PersonId | RoleId |
+-----------+-----------+-----------+
| 1 | 1 | 1 |
| 2 | 1 | 1 |
| 3 | 1 | 1 |
| 2 | 3 | 1 |
| 1 | 3 | 1 |
| 2 | 3 | 3 |
| 1 | 3 | 3 |
| 4 | 2 | 2 |
+-----------+-----------+-----------+
我的目标是通过单个查询获取具有各自演员和角色的电影列表。
Kabaddi Kabaddi <FilmName>
Dayahang <CastFirstName>
Actor <RoleName>
Nischal <CastFirstName>
Actor <RoleName>
Director <RoleName>
Jholay <FilmName>
Dayahang <CastFirstName>
Actor <RoleName>
Priyanka <CastFirstName>
Actress <RoleName>
我试过的最好的是
var result = from cast in entity.Casts
join film in entity.Films on cast.FilmId equals film.Id
join person in entity.People on cast.PersonId equals person.Id
join role in entity.Roles on cast.RoleId equals role.Id
结果
+-------------------+---------------+-----------+
| FilmName | CastFirstName | RoleName |
+-------------------+---------------+-----------+
| Kabaddi Kabaddi | Dayahang | Actor |
| Kabaddi | Dayahang | Actor |
| Jholay | Dayahang | Actor |
| Kabaddi | Nischal | Actor |
| Kabaddi Kabaddi | Nischal | Actor |
| Kabaddi | Nischal | Director |
| Kabaddi Kabaddi | Nischal | Director |
| Nai Nabhannu La | Nischal | Actress |
+-------------------+---------------+-----------+
是否可以在单个查询中进行?怎么样?
【问题讨论】:
-
但它是一个单一的查询...
-
您自己的代码还没有得到答案吗?有什么问题?
-
但是 FilmName 重复了。我需要按照帖子中“我的目标是获取电影列表......”之后提到的顺序。
-
一个 SQL 查询总是以表格格式返回数据,如果你的意思是你想要一个看起来像该行下方的字符串列表,那么可能使用 T-SQL 或存储过程,但不是单个查询.但是为什么不使用循环从返回的表中生成列表呢?
标签: .net sql-server linq