SQL 如何检查一个列中的值是否在另一个列中 table

SQL how to check is a value in a col is NOT in another table

也许我需要再来一杯咖啡,因为这看起来很简单,但我无法理解它。

假设我有一个 tableA 和一个 col1,其中存储了员工 ID……所有员工 ID。而第二个 table、tableBcol2,其中列出了所有具有负面评价的员工 ID。

我需要一个查询,其中 returns 来自 col1 来自 table1 的所有 ID 和一个 newcol,它为 TableB 的 col2 中不存在的那些 ID 显示“1”。

我在 dashDB 中这样做

一个选项在两个表之间使用 LEFT JOIN

SELECT a.col1,
       CASE WHEN b.col2 IS NULL THEN 1 ELSE 0 END AS new_col
FROM tableA a
LEFT JOIN tableB b
    ON a.col1 = b.col2

或者,您可以使用 LEFT JOIN 和 IFNULL 函数来实现您的要求,如下所示。

SELECT a.col1,
   IFNULL(b.col2, 1) NewCol
FROM tableA a
LEFT JOIN tableB b
   ON a.col1 = b.col2