来自 table 的 Select 条记录在另一个 table 中不存在

Select records from a table, which don't exist in another table

我在 sqlite 数据库中有 2 个表 TABLE1TABLE2。 TABLE2 有一些TABLE1 的记录。我想要的是 select 来自 TABLE 1 的所有记录,这些记录在 TABLE2 中不存在。所以我编码:

String sq = "SELECT TABLE1.name, TABLE1.surname, TABLE1.id FROM TABLE1"
            + "LEFT JOIN TABLE1"
            + "ON TABLE1.id <> TABLE2.id";

但是这个查询 returns 我不明白。哪个是正确的查询?

在第 table 秒内检查 NULL 秒,例如:

SELECT TABLE1.name, TABLE1.surname, TABLE1.id 
FROM TABLE1
LEFT JOIN TABLE2 ON TABLE1.id = TABLE2.id
WHERE TABLE2.id IS NULL

NOT EXISTS 的替代解决方案:

SELECT TABLE1.name, TABLE1.surname, TABLE1.id 
FROM TABLE1
WHERE NOT EXISTS(SELECT * FROM TABLE2 WHERE TABLE1.id = TABLE2.id)

还有 NOT IN:

SELECT TABLE1.name, TABLE1.surname, TABLE1.id 
FROM TABLE1
WHERE TABLE1.id NOT IN(SELECT id FROM TABLE2)

使用子查询 return table 2 的所有 ID,现在包括 table1 中 table 2 中不存在的那些 ID。

Select name, surname, id from TABLE1 where id not in (Select id from TABLE2)