ここではオブジェクトで表され、SQLiteテーブルに変換される3つのテーブルがあります。 CategoryGroup
テーブルには複数のCategories
があり、各Category
には複数のPhrases
があります。グループ化を使用して複数テーブルSQL結合を行うには
public class CategoryGroup
{
[PrimaryKey, NotNull]
public int Id { get; set; }
public string Name { get; set; }
public bool Selected { get; set; }
}
public class Category : ICategory
{
[PrimaryKey, NotNull]
public int Id { get; set; }
public int CategoryGroupId { get; set; }
public string Name { get; set; }
public bool Selected { get; set; }
}
public class Phrase : IPhrase
{
public int CategoryId { get; set; }
[PrimaryKey, NotNull]
public string PhraseId { get; set; }
public string English { get; set; }
public string Romaji { get; set; }
public string Kana { get; set; }
public string Kanji { get; set; }
public int Modified { get; set; }
}
私がしたいのは、これらの3つのテーブルを結合し、それらをCategoryGroupでグループ化し、Selected Countを報告することです。
私はこのSQLを作成しましたが、3つのテーブル結合についてはわかりません。
SELECT CG.Id, CG.Name, COUNT(*) AS PhraseCount
FROM CategoryGroup AS CG
FROM Category AS C
JOIN CG.Id = P.CategoryId
JOIN Phrase AS P ON C.Id = P.CategoryId
GROUP BY CG.Id
ORDER BY CG.Name
参加方法について教えてもらえますか?