派生テーブルを使用してテーブル内の 1 つのレコードを別のレコードに結合しようとしていますが、そのための正しいクエリを見つけるのに少し苦労しています。私がしたいのは、結合されている外部クエリからのデータに応じて、派生テーブルが where ステートメントを使用するクエリに派生テーブルを JOIN することです。だからここに私が取り組んでいる現在のコードがあります:
SELECT a.viewerid, a.id, v.id AS entry, a.jobid, v.sourceid, v.cost, a.applicant
FROM a_views a,
JOIN (
SELECT TOP 1 id, sourceid, cost FROM a_views vt
WHERE vt.viewerid = a.viewerid
AND vt.viewed_at <= a.viewed_at
AND vt.referrer NOT LIKE '%' + vt.hostName + '%'
ORDER BY viewed_at DESC
) v
派生テーブルは、外部クエリが使用する同じテーブルのクエリであり、一意の自動インクリメント PKviewerid
であるテーブル全体のそれ自体への FKです。id
ビューアー ID が一致し、日付スタンプ (viewed_at) が外側の日付スタンプより小さく、リファラー列に hostName 列が含まれていない a_views テーブルの最新のレコードを取得する必要があります。