0

这可能很容易,我有一段时间没有使用 sql 并且遇到了这个问题。基本上,作为较大语句的一部分,如果内部 select 语句的计数等于 3,我只想从 select 语句中返回一行。我该怎么做?

例如...

select rev.name, s.title 
from reviewer rev, song s, rating r 
where (r.rID = rev.rID) and (r.mID = s.sID) and ...[rest goes here];

'其余'是我只想在评论者两次rev评论歌曲时返回s,并且第一次 r.value 较大(我们将第一次表示为最旧的r.date_of_rating.

这显然是一个计数和比较,但我不知道如何以正确的 SQL 语法进行布局。任何帮助将不胜感激。谢谢

4

1 回答 1

0

我不确定您的示例是否提供了足够的信息。

但听起来你需要一个“HAVING”子句。

例如

SELECT rev.name, s.title, count(r.mId)
FROM reviewer rev, song s, rating r 
WHERE (r.rID = rev.rID) AND (r.mID = s.sID) 
GROUP BY rev.name, s.title
HAVING count(r.mId) = 3
于 2012-08-15T17:04:51.697 回答