私はこのようなクエリを持っています:
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
これを演算子で書きたいのですが、どうすればいいですか?
ありがとう
私はこのようなクエリを持っています:
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
これを演算子で書きたいのですが、どうすればいいですか?
ありがとう
ここで使用する正当な理由はありません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 };