これにより、1 回の旅行で必要なすべてのデータを取得できます。コマンドDataAdapter.Fill
は次のようになります。
SELECT TOP 20 * FROM Posts WHERE ...
次に、同じコマンドで、セミコロンで区切られた;
2 番目の SQL を指定します。これにより、2 番目のテーブルが に追加されますDataSet
。
SELECT *
FROM
(SELECT
*,
ROW_NUMBER() OVER(PARTITION BY PostID ORDER BY ID desc) RowNum
FROM
Comments
WHERE
PostID IN (SELECT TOP 20 ID FROM Posts WHERE ...)
) tmp
WHERE
RowNum <= 10
この SQL は、上記で要求したすべての投稿のコメントを取得しますが、PostID ごとに最後の 10 件のみを取得します。
ご了承ください
SELECT TOP 20 ID FROM Posts WHERE ...
単一の戻りフィールドが ID 列であることを除いて、最初の SQL ステートメントからの正確な SQL である必要があります。
データセットを入力したら、後で使用できるように保存します。これにより、レコードが変更されたとき ([投稿] を選択)、コメント用に既にローカルにあるデータを取得できます。
これはVBで申し訳ありません
Dim DRs as Datarow() = {Your Dataset}.Tables(1).Select("PostID = " & {The current records ID})
お役に立てれば。少なくとも正しい方向に向けられるはずです。