因此,我将一个表加入到它自己中,以便找到最近添加的某种类型的注解(;notetypesid=20625;)。但是,当没有这种类型的数据时,它会将整个记录的结果从数据集中完全排除,而不是为试图从数据集中提取的字段提供空值;建议记事本;table。
---select ... from ... (including the prop table)
left join PROPOSALNOTEPAD PN_SolicitationStrategy on prop.ID = PN_SolicitationStrategy.ParentId
join ( select parentID, max(DateAdded) as MaxDateAdded FROM PROPOSAL_NOTEPAD where NoteTypeID = 20625 group by ParentId) as PN_max_SolicitationStrategy
ON PN_SolicitationStrategy.ParentId = PN_max_SolicitationStrategy.ParentId AND PN_SolicitationStrategy.DateAdded = PN_max_SolicitationStrategy.MaxDateAdded
我需要能够测试它是否为空:;从notetypeid=20625;的建议\记事本中选择parentid;。然后根据这个结果进行连接。我该怎么做?如何基于条件加入?
1条答案
按热度按时间vyswwuz21#
使用左外联接:
内部连接总是从两个表中带来公共记录。在您的示例中,第1个表和pn\u max\u requisitionstrategy表中没有匹配的记录。所以你没有记录。
使用left outer join将为您带来第一个表中的所有记录和第二个(pn\u max\u requisitionstrategy)表中的匹配记录。
下面是学习联接的简单教程:https://www.w3schools.com/sql/sql_join_left.asp