レコードをフィルタリングするクエリを作成する必要があります。異なるレコードを取得する場合、これらのレコード情報を異なる条件で取得します。また、これらを動的にする必要があります(最初の選択で数量フィルター)
例を示しましょう。
私は2つのテーブルを持っています:
tbl顧客:
id customerName
1 John
2 Philip
3 Steve
tblOrders
id customerId ordId payment
1 1 100 True
2 1 101 True
3 1 102 False
4 2 101 True
5 2 102 True
6 2 103 False
7 3 101 True
私の状態は次のとおりです。
where (orderId = 101 and orderId = 102)
しかし、この顧客のすべての記録を取得してください。つまりpayment = true
、私の状態は、私が確認する必要があるものとは異なります。
payment=True
orderIdを気にせずに 全てのレコードを受け取りたい
私は取得する必要があります:
john 100
john 101
Philip 101
Philip 102
クリアリング: 2 つのステップが必要です。最初に、orderId=101&102 を持つ顧客をフィルター処理し、2 番目のステップで、これらの選択した顧客の orderId のうち、どの支払いが true であるかを表示したいと考えています。たとえば、最初のステップで john (注文 ID = 101&102 を持つ人) を取得し、john 100 - john 101 (支払いは true) を表示します。tblorder.id=1 は最初のクエリではなく、最終結果に表示する必要があると考えてください。
@Raphael は、より良い表現を教えてくれます。注文した顧客 (101 & 102) のすべての支払いの真の注文を確認したいです。ただし、orderids は 2 を超える場合があります (@Raphael に感謝)。
2 番目の問題は、動的でなければならないことです。チェックする必要がある orderId が 10 個を超える場合もあれば、それ以下の場合もあります。つまり、クエリは柔軟でなければなりません。
SQL Server の select コマンドでは、文字列変数を用意して使用できますが、linq ではできません。