BOOK_ORDER、ORDER_ITEMS、および BOOKS テーブルを使用して、BOOKS テーブル内のすべての本のタイトル、注文日、および注文番号を一覧表示する OUTER JOIN 操作を使用してクエリを作成します。ORDER_ITEMS.BOOKID の降順で出力を並べ替えます。注文されたことのない本が 3 冊あり、リストの一番上に表示されます。
私はこのクエリを書きました:-
SELECT B.TITLE, BO.ORDERDATE, ORD.ORDERID FROM BOOKS B, BOOK_ORDER BO, ORDERITEMS ORD
WHERE B.BOOKID = ORD.BOOKID
AND BO.ORDERID = ORD.ORDERID(+)
ORDER BY ORD.ORDERID DESC
私は結果を得ていますが、質問の次の部分について混乱しています:-
「まだ注文されていない本が 3 冊あり、リストの一番上に表示されます。」
これは、Orderdate と OrderId が NULL または空白の本を表示する必要があることを意味していると推測しています。しかし、結果セットの上にこれらの行を取得するにはどうすればよいでしょうか? 作成したクエリで何を変更すればよいですか?
これは BOOKS テーブルです:-
Name Null? Type
----------------------------------------- -------- ---------------
BOOKID NOT NULL NUMBER(15)
ISBN VARCHAR2(10)
TITLE VARCHAR2(30)
PUBDATE DATE
PUBID NUMBER(2)
COST NUMBER(5,2)
RETAIL NUMBER(5,2)
CATEGORY VARCHAR2(12)
これは ORDER_ITEMS テーブルです:-
Name Null? Type
----------------------------------------- -------- ----------------
ORDERID NOT NULL NUMBER(4)
ITEMNUM NOT NULL NUMBER(2)
BOOKID NOT NULL NUMBER(15)
QUANTITY NUMBER(3)
ここに BOOK_ORDER テーブル構造があります:-
Name Null? Type
----------------------------------------- -------- --------------
ORDERID NOT NULL NUMBER(4)
CUSTOMERID NUMBER(4)
ORDERDATE DATE
SHIPDATE DATE
SHIPSTREET VARCHAR2(20)
SHIPCITY VARCHAR2(20)
SHIPSTATE VARCHAR2(2)
SHIPZIP VARCHAR2(5)