如果所有值都等于某个值,则 SQL 查询仅获取行

标签 sql postgresql

假设我有这两个关系:

警报:

id    http_code_result  domain_id   ip_src

1          404              1         1.1.1.1
2          404              1         1.1.1.1
3          200              1         1.1.1.1

:

id    name
1     google

我只想获取具有 404 响应的域。因此,对于 IP 地址 1.1.1.1,它将返回 0 行,因为 ID 为 1 的域也有一个 HTTP 200 响应。

最佳答案

我对您的问题的理解是:“您想要检索具有 HTTP 响应 404 的域。如果同一域具有 404(比如 200)以外的响应,则不应显示该域名。

基于这样的理解,我们可以这样写查询::

SELECT d.id, d.name
FROM domain d, alert a
WHERE a.domain_id=d.id AND a.domain_id NOT IN(SELECT domain_id
                                              FROM alert
                                              WHERE http_code_result!=404);

请引用这个 SQLFiddle 链接以更好地理解

关于如果所有值都等于某个值,则 SQL 查询仅获取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24263378/

相关文章:

需要 MySQL 查询总和和组建议

sql - 如何合并 2 个具有不同值的重复表?

mysql - 如何在 MySQL 中连接字符串 (xeround)

postgresql - 我可以配置 connect-pg-simple 以启用 SSL 吗?

postgresql - PGAdmin4 : Can't prevent browser for opening - archlinux

python - 将 PositiveSmallIntegerField 迁移到 PositiveIntegerField 并在 Postgres 中使用 BIGINT 字段

sql - 在完全理解 GROUP BY 时遇到问题

python - SqlAlchemy:过滤以匹配列表中的所有值而不是任何值?

postgresql - Postgres CIDR。如何只选择没有子网的网络?

postgresql - 如何开放对部署在 okteto 上的 postgresql 的公共(public)访问?