T SQL WHERE子句

时间:2010-03-22 17:19:18

标签: sql tsql

我正在尝试开发一些仅提取最新信息的代码。

当一个用户进入一个子表时,每当他们改变一些东西时,它会在colum中创建一个名为type12_OriginalNoteID的新行,它将自己唯一的数字放入其中。另一个名为type12_OriginalNoteID的字段保持相同的数字 - 这保持不变跟踪在进行任何更改之前原始数字是多少。 我确实有一些代码可以提取最新信息,但如果用户没有对表单进行任何更改,它就不会提取任何内容 - 这就是因为type12_OriginalNoteID为null。

代码如下: -

WHERE ea.type12_NoteID IN
  (SELECT TOP 1 ea.type12_NoteID 
     FROM UserAssessv1aidsadaptations ea1  
     WHERE ea.type12_NoteID =   ea1.type12_OriginalNoteID 
     ORDER BY ea.type12_UpdatedDate DESC)

数据的一个例子如下: -

type12_note ID         12
type12_OriginalNoteID  NULL 
type12_UpdatedDate     11/03/2010 

如果没有人对子表进行任何更改,那么显示信息的解决方案是什么? - 如果type12_OriginalNoteID为null,则添加if语句以运行

1 个答案:

答案 0 :(得分:1)

您需要的是使用LEFT JOIN加入两个表格。因此主表中的记录数据仍然存在,但来自第二个表(=子表)的字段将为null。您的陈述应该类似于:

SELECT TOP 1 t1.type12_NoteID
FROM t1 LEFT JOIN t2 
ON t1.type12_NoteID = t2.type12_OriginalNoteID
ORDER BY t1.type12_UpdatedDate DESC