私は SQL Server 2008 を使用しており、2 番目のテーブルが 1 番目の子であり、3 番目と 4 番目のテーブルが 2 番目の両方の子であるというように、テーブルが関連している 4 つの異なるテーブルからデータを結合しようとしています。次のステートメントを使用しています。結果を出力しますが、9 つの異なるレコード (CR テーブルから 5 つ、CX テーブルから 4 つ) を取得するのではなく、3 番目と 4 番目のテーブルのデータが重複している 20 のレコードを取得しています。
テーブル CX への参照を省略すると、目的の 5 つの結果が得られ、CR への参照を省略すると、目的の 4 つの結果が得られます。スクリーンショットを投稿しますが、評判が悪いため投稿できません。
SELECT
LS.SITECODE,
ep.EP_KEY,
C0.LEASEID,
C0.SDATE AS LeaseStart,
C0.EDATE AS LeaseExpiry,
CR.EFFDATE AS RenewalDate,
CX.SDATE AS ReviewDate
FROM LS
INNER JOIN FMEP AS ep ON LS.SITECODE = ep.SITECODE
INNER JOIN C0 ON ep.EP_KEY = C0.EP_KEY
INNER JOIN CR ON C0.LEASEID = CR.LEASEID
INNER JOIN CX ON C0.LEASEID = CX.LEASEID
WHERE ls.SITECODE = 2121
解決策を求めて過去数時間検索しましたが、SQL に精通していないため、正しい検索用語を使用していないことは明らかです。私は SQL に慣れていないので、あなたの回答を理解するのに苦労している場合は、しばらくお待ちください。時間を割いてこれを確認していただきありがとうございます。