Oracle SQL - 使用外键显示问题

时间:2011-05-24 00:58:48

标签: sql oracle

我正在尝试显示所有显示销售日期的产品,以及所有尚未售出的产品。

我有两个表:ProductsSales。列名是:

产品

  • PROD_ID
  • PROD_NAME

销售

  • PROD_ID
  • date_of_sale

这两个表是使用prod_id列链接的,但我似乎无法获得尚未销售的产品以及销售的产品。

2 个答案:

答案 0 :(得分:2)

我认为您需要在Products和Sales之间使用左外连接:

SELECT p.PROD_ID, p.PRODUCT_NAME, s.DATE_OF_SALE
  FROM PRODUCTS p
  LEFT OUTER JOIN (SELECT DISTINCT PROD_ID, DATE_OF_SALE
                     FROM SALES) s
    ON (s.PROD_ID = p.PROD_ID)

目前无法使用它,但我认为应该得到你想要的。您应该从PRODUCTS获取所有PROD_ID和PRODUCT_NAME,并从SALES获取所有DATE_OF_SALE。如果产品没有DATE_OF_SALE,您仍应该看到该产品。

分享并享受。

答案 1 :(得分:1)

SELECT p.prod_id, p.product_name, s.date_of_sale
FROM  products p
   ,  sales    s
WHERE s.prod_id(+) = p.prod_id  
;