我有這樣的代碼(?):子查詢與內部聯接,不存在
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 。我想檢查一下用戶之前是否借過這本書,因爲我不想向他推薦他讀過的書。 我有一個表名爲訂單在那裏我有訂單和attrubutes的歷史:ID_ORDER,ID_READER和SIGNATURE也表SIGNATURES在那裏我有SIGNATURE和ID_BOOK。當我調用這種方法時,我使用ID_READER但我不知道如何修改此代碼以檢查歷史記錄。 非常感謝您的幫助。
這是什麼意思:「SELECT 1」? – monterinio
「SELECT 1」表示您實際上並不擔心返回任何列,您只是測試存在的條件(WHERE子句)。還有人寫「SELECT NULL」。 –
我在回覆中添加了關於AskTom關於EXISTS/NOT EXISTS的討論的鏈接,這可能有助於澄清事情。 –