2 つのテーブル間で CROSS JOIN を実行し、続いて 3 番目のテーブルに LEFT JOIN を実行し、さらに左結合を実行することは可能ですか? SQL Server 2000/2005 を使用しています。
次のクエリを実行しています。これは非常に単純な IMO ですが、エラーが発生します。
select P.PeriodID,
P.PeriodQuarter,
P.PeriodYear,
M.Name,
M.AuditTypeId,
A.AuditId
from Period P, Member M
LEFT JOIN Audits A
ON P.PeriodId = A.PeriodId
WHERE
P.PeriodID > 29 AND P.PeriodID < 38
AND M.AuditTypeId in (1,2,3,4)
order by M.Name
次のエラーが表示されます。
メッセージ 4104、レベル 16、状態 1、行 1 マルチパート識別子「P.PeriodId」をバインドできませんでした。
LEFT JOIN を削除すると、クエリが機能します。ただし、他のテーブルから取得する必要がある情報が他にもあるため、LEFT JOIN が必要です。
私は何を間違っていますか?これにもっと良い方法はありますか?