私はこのコードを持っている(?):サブクエリは参加しない存在
SELECT b.id_book
INTO var_idbook
FROM ORDERS o
INNER JOIN SIGNATURES s
ON o.signature=s.signature
INNER JOIN BOOKS b ON s.id_book=b.id_book
WHERE ((b.genre=var_genre))
GROUP BY b.id_book
ORDER BY COUNT(o.ID_ORDER) DESC
FETCH FIRST ROW ONLY;
このコードは正常に動作し、それが目標は、特定のジャンルの中で最も人気のある本のid_bookを与えることであるのです。私は彼が一度読んだ本を彼に勧めたくないので、前にこの本を借りたかどうかチェックしたいと思います。 ID_ORDER、ID_READERとSIGNATUREともテーブルSIGNATURES私はSIGNATUREとID_BOOKを持って: は私が注文やattrubutesの歴史を持っているテーブルの名前ORDERSを持っています。私はこのメソッドを呼び出すときにID_READERを使用しますが、このコードを変更して履歴をチェックする方法はわかりません。 ご協力いただきありがとうございます。
をORDER_IDそして、それは何を意味する: "1 SELECT" を? – monterinio
"SELECT 1"は、実際にカラムを返すことを心配していないことを意味し、存在の条件(WHERE句)をテストするだけです。 「SELECT NULL」と書いている人もいます。 –
Asktomに関するディスカッションのために、EXISTS/NOT EXISTSについてのリンクを追加しました。これは少し詳細を明確にするのに役立ちます –