SELECT值不包括其他SELECT的值

时间:2014-07-02 13:33:58

标签: sql postgresql

我有一个选择,它带给我一些主键。我需要从其他表中选择所有未在上一个查询中列出的值。我该怎么办?

我一直在努力:

SELECT id
FROM tab1,
   ,(SELECT id...
     WHERE LIKE '%abc%'
    ) AS result
WHERE result != tab1.id;

但是没有用,它还给我带来了子查询中的数据。我正在使用PostgreSQL。

3 个答案:

答案 0 :(得分:1)

SELECT tab1.id
FROM tab1 LEFT OUTER JOIN
    (SELECT id
     FROM ...
     WHERE LIKE '%abc%'
     ) AS result
ON result.ID = tab1.id
where result.ID is null;

答案 1 :(得分:1)

SELECT id
FROM tab1 t1
WHERE NOT EXISTS (
    SELECT 1
    FROM tab2 t2
    WHERE t2.id = t1.id 
    -- AND t2.name LIKE '%abc%'
    )
    ;

答案 2 :(得分:1)

你可以试试这个,

SELECT * from table1 WHERE id NOT IN(SELECT table from table2 where);

其中" id"两个表格中的共同颜色,即表1和表格2。 并且将是在内部查询中从table2获取记录所需的任何基础上的条件。

相关问题