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ここで、「残り」とは、レビュー担当者が曲を2回レビューしたときにのみ戻りたいこと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 に答える