2012-10-24 2 views
4

날짜, 평가자, 클래스 이름, 점수, 제목을 가져 오는 6 개의 테이블에서이 쿼리를 가져옵니다.여러 개의 내부 조인이있는 sql 쿼리를 LINQ로 변환

date   | rated | rater | teamname | score | subject 
10/12/2012 john  mike  teamA  9  Math 
10/09/2012 john  mike  teamA  9  Science 
10/09/2012 john  abra  teamA  5  Math 
10/09/2012 john  abra  teamA  5  Science 

에서

SELECT r.date, u1.username as rated, u2.username as rater, c.name as classname, s.ratings, sbj.name 
FROM Ratings r 
INNER JOIN Users u1 ON u1.userid = r.rated 
INNER JOIN Users u2 ON u2.userid = r.rater 
INNER JOIN ClassMembers cm ON u1.userid = cm.userid 
INNER JOIN Class c ON cm.teamid = c.teamid 
INNER JOIN Scores s ON s.ratingsid = r.ratingsid 
INNER JOIN Subjects sbj ON sbj.subjectid = s.subjectid 

이 결과는 내가 LINQ 표현이 쿼리를 변환해야합니다. SQL 쿼리를 LINQ로 변환하는 데 어려움을 겪고 있습니다. 어떤 도움을 주시면 감사하겠습니다.

답변

3

당신은 할 수있는이 통해 가입 :

var results = from r in Ratings 
       join u1 in Users on u1.userid = r.rated 
       join u2 in Users on u2.userid = r.rater 
       join cm in ClassMembers on cm.userid = r.rated 
       join c in Class on cm.teamid = c.teamid 
       join s in Scores on s.ratingsid = r.ratingsid 
       join sbj in Subjects on sbj.subjectid = s.subjectid 
       select new 
        { 
         Date = r.date, 
         Rated = u1.username, 
         Rater = u2.username, 
         ClassName = c.name, 
         Ratings = s.ratings, 
         Subject = sbj.name 
         }; 
+0

고마워요! 그 전에 똑같은 것을 시도 했었어. 그러나 이것은 완벽하게 작동합니다! 너는 남자 야! –

+0

클래스 이름을 c.name으로 그룹화하는 방법을 알고 있습니까? –

+0

@ shinratensei 거기에 그룹 절을 추가하십시오. –

0

는 CATID, CatName, subcat 같은 CATID, subcat로 (하위 카테고리로 a.CatName, b.CatName을 선택 a.CatID에서 하위 카테고리로 구분 subcat을 선택 , b.CatID from Iris_CategoryMaster 내부 연결 Iris_CategoryMaster b on a.CatID = b.ParentID 여기서 b.Status = 1) as x

관련 문제