好的,在这个查询中,我从 5 个表中提取信息,表 Company、Programmer、Tester、Manager 和表 Contract。我将提取程序员、测试人员和经理的姓名和电话号码,以及他们工作的公司,这家公司负责管理这个程序,因为 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