OK、このクエリでは、Company、Programmer、Tester、Manager、Contract という 5 つのテーブルから情報を抽出しています。プログラマー、テスター、マネージャーの名前と電話番号、および彼らが働いている会社を抽出します。この会社はこのプログラムを管理する責任があり、x 人からの要求は関係ありません。
問題は以下のコードにあります。プログラマーの名前や電話番号など、特定の情報が他の情報と同じくらい何度も出てきます。会社のマネージャーとテスターの数だけ出てきます。
左外部結合を試してみたところ、さらに多くの結果が得られたので、次回は結果が重複せずに NULL となるように修正するにはどうすればよいですか?
SELECT DISTINCT pg.name,
pg.Tel_Nr,
Mgr.name,
Mgr.Tel_Nr,
Ts.Name,
Ts.Tel_Nr,
Pg.Name,
con.program_name
FROM Company AS Cm
INNER JOIN Programmer AS Pg ON Pg.company = Cm.name
INNER JOIN Manager AS Mg ON Mg.company = Cm.name
INNER JOIN Tester AS Ts ON Ts.company = Cm.name
INNER JOIN Contract AS Con ON Con.program_name = 'My Program'
AND Cm.name = Con.Company