0

私はこのようなクエリを持っています:

SELECT au_lname,der.col FROM authors INNER JOIN (SELECT t.au_id, COUNT(title_id) AS 'col'
                       FROM titleauthor t GROUP BY t.au_id) der ON authors.au_id=der.au_id

letこれを演算子で書きたいのですが、どうすればいいですか?

ありがとう

4

1 に答える 1

2

ここで使用する正当な理由はありませんlet。グループ結合を使用するだけです。

var query = from author in authors
            join title in titleAuthor on author.AuthorId equals title.AuthorId
            into titles
            where titles.Count() != 0
            select new { author.LastName, Count = titles.Count() };

ここでカウントに使用できると思います:let

var query = from author in authors
            join title in titleAuthor on author.AuthorId equals title.AuthorId
            into titles
            let count = titles.Count()
            where count != 0
            select new { author.LastName, Count = count };

または、元のクエリのより直接的な翻訳を使用できます。

var innerQuery = from title in titleAuthor
                 group title by title.AuthorId into titles
                 select new { AuthorId = titles.Key, Count = titles.Count() };
var query = from author in authors
            join titleCount in innerQuery
              on author.AuthorId equals titleCount.AuthorId
            select new { author.AuthorId, titleCount.Count };
于 2012-06-24T07:32:57.640 に答える