2012-11-13 2 views
0

다시 한 번 질문을 다시 작성합니다. 올바른 방법으로 공개하지 않았습니다. 죄송합니다.Linq-SQL에 해당하는 하위 쿼리가있는 SQL 쿼리

나는이 SQL 쿼리가 있습니다

SELECT T1.*, T2.documentNumber 
FROM TABLE1 T1  
LEFT JOIN TABLE2 T2 ON  
    T2.documentNumber = (
     SELECT TOP 1 documentNumber   
     FROM TABLE2 
     WHERE description = T1.description)          
WHERE T1.color = 'RED'; 
내가 해당 T2.documentNumber 값으로 색에 의해 필터링 T1에있는 모든 행을 검색 할 필요가

하지만 독특한 T1 행, 내 말은, T2과 1의 관계 (1) .

T1T2은 열과 관련됩니다. descriptiont2에서 고유하지 않으므로 각 행 T1에 대해 결과가 1 행만 필요하므로이 테이블에는 동일한 설명이 포함 된 N 개의 행이 포함될 수 있습니다. 고유 한 열 (documentNumber)에 의해 필터링 된 상위 1 개를 얻습니다.

이 쿼리는 정상적으로 작동하지만 Linq-to-SQL에 해당하는 알고 싶다면 몇 시간 동안 사용해 보았지만 성공하지 못했습니다. 누가 좀 도와 줄 수 있니?

+0

은 무엇 열 T1을하고 T2의 공통점은? – Kyle

+0

T1과 T2는 "설명"을 통해 관련됩니다. –

답변

2

var result = table1.Where(t1 => t1.color == "RED") 
        .GroupJoin(table2, 
           t1 => t1.description, 
           t2 => t2.description, 
           (t1,g) => new { 
               T1 = t1, 
               DocumentNumber = g.FirstOrDefault() 
              }); 

필수 (101) 링크를 시도하십시오 : http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b 쿼리의 이러한 종류의 처리 도움이 될 것입니다 ....

+0

지금 당장 사무실을 떠나야합니다. 내일 확인해 드리겠습니다. 의견을 보내 드리겠습니다. 감사! –

+0

나는 유혹에 저항 할 수 없었다. 나는 사무실에 있었다. 나는 그것을 시험해 보았다. 예상대로 작동했다. 너는 내 하루를 구했다. –

+0

@Jero Coolios,하지만 예제를 살펴 보겠습니다.이 같은 것은 Queryable 확장 메서드의 정의에서 명백해야합니다. – user1793607