我有两个表Table1和表2有3列id,名称和mac地址,在第二个表中我也有名为mac的列。
表1中我需要的东西我有10条记录,而表2中我只有5条记录,我想要表2中没有的记录。
如何在sqlite android中执行此操作?任何帮助,将不胜感激。提前谢谢......
感谢您抽出时间阅读本文
在表名中我添加了第二个类的名称
此查询适用于sql,我需要sqlite
SELECT T1.*
FROM T1
WHERE NOT EXISTS(SELECT NULL
FROM T2
WHERE T1.ID = T2.ID
AND T1.Date = T2.Date
AND T1.Hour = T2.Hour)
答案 0 :(得分:2)
这应该适用于SQLite,尽管效率不高。
如果ID做了它应该做的事情,那么检查T1.Date = T2.Date和T1.Hour = T2.Hour可能被遗漏。
使用JOIN的更好方式:
SELECT T1.*
FROM T1
LEFT JOIN T2 ON T1.ID = T2.ID
WHERE T2.ID IS NULL;
答案 1 :(得分:0)
您根据参考密钥(我假设为MAC)指定条件
Select T1.ID, T1.Name From Table1 T1 LEFT JOIN From Table2 T2 on T1.Mac=T2.Mac where T2.Mac is NULL.
或
SELECT id, name
FROM Table2
WHERE NOT EXISTS
(SELECT *
FROM Table2
WHERE Table1.Mac = Table2.Mac)
答案 2 :(得分:0)
SELECT *
FROM T1
WHERE T1.name NOT IN (SELECT name FROM T2 )
-------------------或者这样做是为了更多的限制---------------------- ----
SELECT *
FROM T1
WHERE T1.name NOT IN (SELECT name FROM T2 ) and
T1.mac NOT IN (SELECT mac FROM T2 )