在一个表中查找没有另一个表中存在的匹配列数据的记录

时间:2013-05-25 11:39:38

标签: java android sqlite

我需要查询我的数据库,其中一个表的唯一字段存在于另一个表中,并且使用此我需要仅获取第二个表中表格行中没有匹配字段的记录,用于表1中的记录。

2 个答案:

答案 0 :(得分:1)

SELECT * FROM SECOND TABLE WHERE COLUMN_ID NOT IN(SELECT COLUMN_ID FROM FIRST TABLE);

了解更多关于NOT IN的信息:

http://www.w3schools.com/sql/sql_in.asp

答案 1 :(得分:0)

试试这个:
        在一个表中查找不存在于另一个表中的记录或         NOT IN,LEFT JOIN和NOT EXISTS之间的区别。

    SELECT a.i
FROM tableA   AS a
WHERE a.i NOT IN (SELECT b.j FROM tableB   AS b) OR a.i IS NULL
 ----------OR   There are at least three other ways to do this, which all are much more efficient!
    SELECT a.i FROM tableA AS a
        WHERE a.i NOT IN (SELECT b.j FROM tableB  AS b)
        UNION ALL
        SELECT a.i
        FROM tableA  AS a
        WHERE a.i IS NULL
     ----------OR   
        SELECT a.i
        FROM tableA  AS a
        LEFT JOIN tableB   AS b ON b.j = a.i
        WHERE b.j IS NULL
    ----------OR     
        SELECT a.i
        FROM tableA  AS a
        WHERE NOT EXISTS (SELECT * FROM tableB   AS b WHERE b.j = a.i)