我有一个选择,它带给我一些主键。我需要从其他表中选择所有未在上一个查询中列出的值。我该怎么办?
我一直在努力:
SELECT id
FROM tab1,
,(SELECT id...
WHERE LIKE '%abc%'
) AS result
WHERE result != tab1.id;
但是没有用,它还给我带来了子查询中的数据。我正在使用PostgreSQL。
答案 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获取记录所需的任何基础上的条件。