连接两个表并选择PL / SQL中where条件的记录

时间:2018-01-31 02:10:55

标签: oracle plsql plsqldeveloper

我是PL / SQL的新手,我需要加入两个表,并从订单和加入bookid的书籍表中获取最近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

1 个答案:

答案 0 :(得分:2)

您需要返回引用光标才能执行此操作。必须由您的应用程序选择此引用游标作为参数。

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