わかりましたので、メインの選択クエリは次のとおりです。
SELECT
tbl_equip_swl_unit.unit_name,
tbl_equipment.equipment_id,
tbl_equipment.e_serial,
tbl_equipment.e_description,
tbl_equipment.e_swl,
tbl_equipment.e_swl_unit_id,
tbl_Lifting_Gear.lifting_through,
tbl_Lifting_Gear.liftingNDT,
tbl_Lifting_Gear.lifting_ref_no,
tbl_Lifting_Gear.liftingTest,
tbl_Lifting_Gear.inspected
FROM tbl_equipment
INNER JOIN tbl_equip_swl_unit ON tbl_equipment.e_swl_unit_id = tbl_equip_swl_unit.unit_id
INNER JOIN tbl_Lifting_Gear ON tbl_equipment.equipment_id = tbl_Lifting_Gear.e_id
WHERE lifting_loc = @loc AND tbl_Lifting_Gear.con_id = @con AND tbl_equipment.e_deleted = 'N' ORDER BY lifting_ref_no, e_swl, e_serial
以下のクエリは現在、Web ページの繰り返し領域内にネストされており、メイン クエリのすべての結果が返されるまで実行されます。
SELECT TOP 1
e_defects,
con_id,
lifting_loc,
lifting_date,
e_add_type
FROM dbo.tbl_Lifting_Gear
WHERE e_id = @id ORDER BY lifting_date DESC
@id の値は tbl_Lifting_Gear.equipment_id です (親クエリから)
@con と @loc は、ブラウザーから渡される 2 つの変数です。
基本的に、メイン クエリは検査中の機器のリストを返し、返された行ごとにネストされたクエリを実行して、以前の検査の詳細を見つけます。これは、lifting_date に対する値を持つ最新の結果を選択することによって行われます。メイン クエリからの equipment_id は、ネストされたクエリの WHERE に使用される変数です)。
そのため、ページの読み込み時間を完全に殺しています。このプロジェクトをこの状態で継承し、データベース構造を変更せずにサイト上のすべてのデータベースのやり取りを合理化しようとしていることを指摘しておく必要があります。
したがって、必要なすべての結果を 1 つのテーブルに返すようにステートメントを最適に構成する方法についてのアイデアをいただければ幸いです。ありがとうございます。