SQL:完全参与加入

标签 sql

假设我有一张表Person(Name, Hobby),总共有3个爱好。该表的值就像

Amy | Stamp Collection
Kevin | Mountain Biking
Kevin | Stamp Collection
Ron | Mountain Biking

在这里,KevinMountain BikingStamp Collection 这两个爱好。我需要编写一个查询来检索 Kevin

我怎样才能得到拥有所有爱好的人

谢谢

最佳答案

SELECT Name
FROM Person
GROUP BY Name
HAVING COUNT(*) = (SELECT COUNT(DISTINCT Hobby) FROM Person)

Runnable example

关于SQL:完全参与加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9468844/

相关文章:

mysql - 我如何为我编写的子查询编写连接查询?

java - 将 Kafka 与 Apache Calcite 集成

mysql - 让 SQL 为每个 WHERE 子句返回一行,即使与前一个相同

sql - 如何获取输入文件名作为 AWS Athena 外部表中的列

sql - 'replace'的目标最多只能是一个节点,找到 'text *'

python - SQL Server 选择特定的 DataFrame 格式

php - mysql_real_escape_string ALONE可以防止各种sql注入(inject)吗?

mysql - 通过查询计算 SQLiteDB 的下四分位数和上四分位数

sql - 如何并行执行 SQL 过程中的子任务

MySQL 存储过程重复问题