我有一个名为DICT的表,它在表申请人和其他名为DT的表上都有一个外键。
表DT在表申请人中有一个外键。
我想要做的是选择:
我有这个不完整的代码
SELECT DICT.*,DT.*,applicant.*
FROM DICT
LEFT OUTER JOIN DICT.dt = DT.id_DT
INNER JOIN applicant ON DICT.applicant =applicant .id_applicant
WHERE DICT.id_DICT = 5
我必须在DT上使用LEFT OUTER JOIN
,因为有些时候DICT没有DT
此代码提供DICT,其相关的申请人记录和DT,但不会向申请人提供与DT相关的信息。
答案 0 :(得分:0)
如果我正确收集OP,问题是你需要加入applicant
表两次才能在列表列表中显示两次。一组是加入DT记录的申请人记录,一组是加入DICT记录的申请人记录。
SELECT DICT.*,dict_applicant.*,dt_applicant.*,DT.*
FROM DICT
INNER JOIN applicant AS dict_applicant ON DICT.applicant = dict_applicant.id_applicant
LEFT OUTER JOIN DT on DICT.dt = DT.id_DT
INNER JOIN applicant AS dt_applicant on DT.applicant = dt_applicant.id_applicant
WHERE DICT.id_DICT = 5