【发布时间】:2015-05-13 19:34:51
【问题描述】:
我有一个简单(我想)的问题,这让我很困惑(我不是 SQL 专家,你很快就会看到...:-)。
我有一个表person,其中字段id 和name,还有一个表comment,字段id、id_person 和text:
---------------
table: person
---------------
id | name
---------------
---------------------------
table: comment
---------------------------
id | id_person | text
---------------------------
cmets 与person.id 上的人员相关联 => comment.id_person。
每个人可以拥有多个 cmets。
我宁愿不保存任何表中的 cmets 数量。
问题是:如何选择所有至少有 N 个 cmets 的人?
这是我现在正在尝试的,但它当然是错误的......:
SELECT * FROM person WHERE (SELECT COUNT(*) FROM comment WHERE id_person = 2) >= N
P.S.:我目前正在使用 sqlite,但标准 SQL 答案很好......
【问题讨论】:
-
“这是我现在正在尝试的,但它当然是错误的”,是什么让你说它是错误的?
-
'因为我必须确定一个特定的 'id_person',但我需要所有人... :-( 如您所见,我对 SQL 很困惑... :-(跨度>
-
不用担心。我在我的答案中包含了一个版本,应该可以解决你的问题。除此之外,这是一个非常好的开始,而且很可能是我会做的。