我有以下表结构加入:SQL留下了重复
我只是无法获得所需要的输出如上使用左连接:
SELECT K.[ID],
K.[KeyName],
K.Notes,
KR.isSignedIn
FROM [dbo].[Keys] K
LEFT JOIN
[dbo].[KeyRecords] KR WITH(NOLOCK)
ON
K.ID = KR.Key_ID
WHERE
(KR.isSignedIn = 1 OR KR.isSignedIn is null)
我知道原因,这是因为KeyRecords表可以有多个相同键的条目。但是,如何使它只检查该密钥的最后一项?
所以我想要记录表中最后一条记录isSignedIn = 1的Key表中的所有记录。如果KeyRecords表中没有记录,我仍然想要显示它。
您必须获取全部3条记录,这是因为'keyId = 1'的isSignedIn'为1。如果你想忽略它,那么应该在那里有明显的区别,或者明确地将它排除在“where”之下 – Vikrant 2015-03-19 09:46:43