同じテーブル内の他のエントリを参照する 3 つの識別子と共に Name 列を持つテーブルがあります。これら 3 つの識別子を参照しているレコードの実際の名前に解決するクエリです。これまでのところ、私は次のことしか管理していません...
SELECT mt.Name, mt2.Name, mt3.Name, mt4.Name
FROM MyTable AS mt1
LEFT OUTER JOIN MyTable AS mt2 ON mt2.Id = mt1.RefId1
LEFT OUTER JOIN MyTable AS mt3 ON mt3.Id = mt1.RefId2
LEFT OUTER JOIN MyTable AS mt4 ON mt4.Id = mt1.RefId3
...これは機能し、実際に 3 つの参照レコードの名前を返します。場合によっては、RefId1/2/3 の値が空になることがあるため、すべての RefId フィールドが常に使用されるわけではないことに注意してください。それは機能しますが、正確には高速ではありません.SQLを実際に知っている人なら、これを大幅に改善できると確信しています. 何か案は?