繁体   English   中英

如果我将连接表 2 留给表 1,我如何调用表 1 中未出现在 CASE 或 IF 语句中的表 2 中的 ID?

[英]If I left join table2 to table1, how I can I call on the IDs in table1 that don't appear in table2 within a CASE or IF Statement?

我正在编写一个 IF/Case 语句,要求我识别Table1中未出现在第二个表Table2中的所有 Ids 和ID列,该表在ID列上与Table1连接,并基于该 IF 语句我想生成一个名为Missing with 1s, 0s 的二进制列。

表格1

ID 地区
一个 我们
b 我们
C 墨西哥
d 日本

表2

ID
一个 5
d 10

加入后这是我所拥有的:

ID 地区
一个 我们 5
b 我们 无效的
C 墨西哥 无效的
d 日本 10

最终结果应该是:

ID 地区 失踪
一个 我们 5 0
b 我们 无效的 1
C 墨西哥 无效的 1
d 日本 10 0

我不知道如何在 IF 或 CASE 语句中识别那些特定的 Id,但我可以编写查询的其余部分。 我试着写

IF(Table1.ID NOT IN Table2.ID, 1, 0) As Missing

但这没有用(某种不稳定的问题)

你可以试试:

SELECT t1.*, t2.ID IS NULL AS Missing
FROM Table1 t1
LEFT JOIN Table2 t2
    ON t2.ID = t1.ID;

使用IF()函数我们可以尝试:

SELECT t1.*, IF(t2.ID IS NULL, 1, 0) AS Missing
FROM Table1 t1
LEFT JOIN Table2 t2
    ON t2.ID = t1.ID;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM