这可能很容易,我有一段时间没有使用过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语法中进行布局。任何帮助将不胜感激。感谢
答案 0 :(得分:0)
我不确定你的例子是否提供了足够的信息。
但听起来你需要一个'HAVING'条款。
e.g。
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