[英]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.