Как выбрать двухмерные данные с сервера SQL - PullRequest
0 голосов
/ 05 октября 2010

У меня есть таблица сервера sql со следующими данными:

PrimaryKey  ForeignKey   DataType   Value 
1           1            Actor      abc
2           1            Movie      efg
3           1            Movie      hij
4           2            Actor      mno
5           2            Movie      pqr
6           2            Movie      stu
7           2            Movie      vwx

Я хочу выбрать данные из этой таблицы и загрузить класс Csharp с именем Actors.Класс имеет свойство под названием ActorName и коллекцию фильмов актера.По сути, мне нужно заполнить ActorName данными в столбце «Значение», собрать все имена фильмов с помощью актера из столбца «Значение» и заполнить коллекцию.Я не уверен, как это сделать, особенно как написать соответствующее заявление выбора SQL.

Спасибо

Ответы [ 2 ]

0 голосов
/ 05 октября 2010

Создание нескольких таблиц SQL.

1- Фильмы (MovieID, Movie_Name)

2- Актеры (ActorId, MovieId, Actor_Name)

Эти две таблицы должны иметь отношения,Actors.MovidId должен быть подключен к Movies.MovieId.

Я предлагаю вам использовать LinQ .

var retVal = (из s в dataContext.Movies выберите s).ToList ();

retVal возвращает вам таблицу Movies, что означает, что вы получили MovieId, Movie_Name

, а затем вы можете делать с этим списком все, что угодно.Проверьте здесь 101 Образцы LinQ

0 голосов
/ 05 октября 2010

Как уже отмечали другие, вам необходимо провести рефакторинг вашей БД.Если это невозможно, вы можете выполнить следующую инструкцию SQL, которая использует self-join :

SELECT actors.Value AS Actor, movies.Value AS Movie 
FROM TableName actors, TableName movies 
WHERE actors.DataType='Actor' 
AND   movies.DataType='Movie'
AND   actors.ForeignKey = movies.ForeignKey

. Это вернет что-то вроде

Actor    Movie
abc      efg
abc      hij
mno      pqr
mno      stu
etcetera
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...