sql - 表中不存在的行

标签 sql postgresql

我有一个名字列表 John、Rupert、Cassandra、Amy,我想获取表中不存在的名字:Cassandra、Amy

我应该如何写这样的查询?

我的 table :

+----+--------+-----------+------+
| id | name   | address   | tele |
+----+--------+-----------+------+
|  1 | Rupert | Somewhere | 022  |
|  2 | John   | Doe       | 029  |
|  3 | Donald | Armstrong | 021  |
|  4 | Bob    | Gates     | 022  |
+----+--------+-----------+------+

最佳答案

成套思考。使用 UNION ALL 将名称添加到结果集中,使用 EXCEPT 从结果集中删除名称。

select 'John'
union all
select 'Rupert'
union all
select 'Cassandra'
union all
select 'Amy'
except
select name from mytable;

关于sql - 表中不存在的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31023371/

相关文章:

sql - 逻辑变化存在与存在限制 1

sql - 如何检索 GROUP BY sql 语句中的特定列?

mysql - 简单的多对多关系

具有整数值的 Postgresql 更新列

sql - 尝试在 zip 上连接两个表 - 一个表没有前导零,另一个有前导零

sql - 列出重复值的数量

python - UPDATE 查询期间 WHERE 不存在时引发异常

c++ - 删除阻塞插入

mysql - 如何将上个月的记录加1并插入为当月记录?

mysql - 编写查询来计算平均收入但错误地得到一组?