sql:检查一个id是否只存在一个特定的item,当可能存在多个item时

sql: check for existence of only one specific item for an id, when multiple items may exist

我有一个位置数据库,可以有 0 到 27 种可用日志类型。我只对存在一种类型的日志感兴趣,如果该日志存在,我想 return true 或 false。我尝试使用 CASE WHEN 但问题是,如果一个日志存在(这是期望的结果),我的结果显示 true 或 false,然后所有其他日志都显示 false,所以我得到具有相同 id 的多行(这是不是我想要的)。 示例代码:

SELECT
Table1.LocationId
, CASE WHEN Table2.LogId = 8 THEN 'True' ELSE 'False' END AS 'Log8Avail'

期望的结果是:

| LocationID |Log8Avail|
 ----------------------
| 1          | True    |
 ----------------------
| 2          | False   |
 ----------------------
| 3          | True    |
 ----------------------

但我目前得到的是:

| LocationId | Log8Avail|
 -----------------------
| 1          | True     |
 ----------------------- 
| 1          | False    |
 -----------------------
| 1          | False    |
 -----------------------
| 2          | False    |
 -----------------------

我的问题是,如何调整我的查询,使其只查找我感兴趣的特定日志是否存在?

SELECT
Table1.LocationId
, CASE WHEN (SELECT COUNT(*) 
             FROM Table2 
             WHERE Table2.LogId = 8)>0 THEN 'True' ELSE 'False' 
  END AS 'Log8Avail'

像这样?

SELECT t1.LocationId, 
       CASE WHEN t2.LogID IS NULL 
            THEN false 
            ELSE TRUE 
       END as Log8Avail
FROM Table1 t1
LEFT JOIN Table2 t2
      ON t1.id = t2.id
     AND t2.LogId = 8