使用 PL/SQL 中的 where 条件连接两个表和 select 记录

Joining two tables and select records with where condition in PL/SQL

我是 PL/SQL 的新手,我需要加入两个 table 并从在 bookid 上加入的订单和书籍 table 获取过去 24 小时订单的数据。以下是我尝试以下解决方案的方法,这是正确的编写方法吗?请帮忙谢谢

CREATE PROCEDURE test.books@state NVARCHAR(20) 
AS
BEGIN
SELECT
b.orderid,a.bookid,b.date
FROM books a
INNER JOIN orders AS b  ON a.bookid= b.bookid
where b.date > DATE_SUB(CURDATE(), INTERVAL 1 DAY) and a.author="JOHN"  
END

您需要 return 一个引用游标来执行此操作。您的应用程序必须将此引用光​​标选为参数。

SYSDATE 是 Oracle 中的当前日期(包括时间)。 SYSDATE - 1 是 24 小时前。

字符串是单引号。

CREATE OR REPLACE
PROCEDURE Books(
                      p_recordset OUT SYS_REFCURSOR) AS 
BEGIN 
  OPEN p_recordset FOR
    SELECT
b.orderid,a.bookid,b.date
FROM books a
INNER JOIN orders AS b  ON a.bookid= b.bookid
where b.date > SYSDATE-1 and a.author='JOHN'  ;
END Books