Sql 从左侧外部联接中选择

Sql 从左侧外部联接中选择,sql,postgresql,Sql,Postgresql,我有一个名为DICT的表,表applicator上有一个外键,另一个表名为DT 表DT有一个外键进入表申请人 我要做的是选择: 格言* 申请人与该条有关 与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_applic

我有一个名为DICT的表,表applicator上有一个外键,另一个表名为DT

表DT有一个外键进入表申请人

我要做的是选择:

  • 格言*
  • 申请人与该条有关
  • 与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上使用
左外连接
,因为有些时候DICT没有DT
这段代码给出了DICT、它们链接的申请人记录和DT,但它没有给出与DT相关的申请人。

如果我正确地收集了OP,问题是您需要两次加入
申请人
表,以便它在列列表中显示两次。一组是加入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