如何从查询中获得正确的SQL结果

如何从查询中获得正确的SQL结果,sql,sql-server,Sql,Sql Server,我的数据库中有一个视图,它使用了几个表,一切都像现在一样正常工作。我想根据是否在另一个表中找到特定匹配项添加另一列/值。我在其他人中使用过类似的迭代,但这次我得到了一个空结果,即使存在匹配 基本上: 表2 身份证件 价值 正文 1. 错过 一些文本 1. 错过 其他文本 2. 打 好啊 2. 错过 总是 3. 打 Whatelse 如果我理解正确,您可以使用exists检查另一个表中是否存在相应的行。这看起来像: select t2.*, (case when exists (se

我的数据库中有一个视图,它使用了几个表,一切都像现在一样正常工作。我想根据是否在另一个表中找到特定匹配项添加另一列/值。我在其他人中使用过类似的迭代,但这次我得到了一个空结果,即使存在匹配

基本上:

表2

身份证件 价值 正文 1. 错过 一些文本 1. 错过 其他文本 2. 打 好啊 2. 错过 总是 3. 打 Whatelse
如果我理解正确,您可以使用
exists
检查另一个表中是否存在相应的行。这看起来像:

select t2.*,
       (case when exists (select 1
                          from table_1 t1
                          where t1.id = t2.id and t1.event = 'Hit'
                         )
             then 'real' else 'fake'
        end)
from table_2 t2;

为了提高性能,您需要在
表1(id,event)

上创建一个索引,以显示两个表中的示例数据。请停止在代码中使用。如果您必须并且接受错误和不正确的值,那么至少使用当前的、未弃用的语法。谢谢!这给了我想要的结果。它确实使查询速度减慢了几秒钟,但这是我现在愿意接受的:)