テーブルをルックアップテーブルに結合したままにするデータベースのクエリを作成しようとしています。結果はcaseステートメントに基づいて返されます。
通常のSQLでは、クエリは次のようになります。
SELECT chis_id, chis_detail, cilt.mhcatID, cilt.mhtID, 'TheFileName' =
CASE
WHEN cilt.mhcatID IS NOT NULL AND cilt.mhtID IS NOT NULL THEN chis_linked_filename
END
FROM chis
LEFT JOIN cilt on cilt.mhcatID = chis.mhcat_id AND cilt.mhtID = chis.mht_id
WHERE cch_id = 50
chis
はクエリ対象のテーブルでcilt
あり、ルックアップテーブルであり、結果としてchisとの外部キー関係は含まれていません(chisには、それぞれmhtIDとmhcatIDによるmhtテーブルとmhcatテーブルに対する既存のFKがあります)。
クエリは、レコードの履歴更新のリストを返すために使用されます。ciltルックアップテーブルへの結合が成功した場合、これは、クエリの呼び出し元が、履歴の更新のために関連するファイルのファイル名を表示する権限を持っていることを意味します。
調査中に、ケースステートメントの実行方法とLinq to Entityクエリでの左結合に関するさまざまな投稿をここで見つけましたが、2つの異なるフィールドで結合する方法を理解できませんでした。これは可能ですか?