私はテーブルA、B、Cを持っています
B は A と多対 1 で関連付けられている
CがBの完全なサブセットであるすべてのAを見つけたい.
次の LINQ クエリ (疑似コード) は、取得したいものを表しています。
class A
{
public B[] Bs { get; set; }
}
class B
{
public string Text { get; set; }
}
class C
{
public string Text { get; set; }
}
private static IEnumerable<A> Search(C[] C, A[] A)
{
return from a in A
where C.All(c => a.Bs.Any(b => SomeCondition(b, c)))
select a;
}
private static bool SomeCondition(B b, C c)
{
//There we comparing B and C
throw new NotImplementedException();
}
次のテーブル構造があります
A ( a_ID INT PRIMARY KEY )
B ( b_ID INT PRIMARY KEY, a_ID INT, Text NVARCHAR(MAX) )
C ( c_ID INT PRIMARY KEY, Text NVARCHAR(MAX) )
B がすべての C に一致するすべての A を取得する必要があります。
例
A | a_ID |
| 1 |
| 2 |
| 3 |
B | b_ID | a_ID | Text |
| 1 | 1 | Cat |
| 2 | 1 | Dog |
| 3 | 1 | Rabbit|
| 4 | 2 | Cat |
| 5 | 2 | Cat | -- B can contain duplicates
| 6 | 2 | Rabbit|
C | c_ID | Text |
| 1 | Cat |
| 2 | Dog |
出力
| a_ID |
| 1 |