SQL ORACLE将两个查询一起加入?

时间:2015-10-24 08:13:25

标签: sql oracle join left-join

提前感谢您的帮助。

我有一组这样的表the results from DESC queries

此外,这是一个半精确的ERD,看看发生了什么。 ERD

我需要列出个别校友和企业的所有捐款。我需要姓名和身份证件。

以下代码返回了我对校友捐赠者的所有需求:

SELECT DonationID, Donation.AlumniID, BusinessID_FK, DONATIONDATE, Value, Alumnus.FirstName, Alumnus.LastName
FROM DONATION 
JOIN Alumnus 
   on Donation.AlumniID=Alumnus.alumniid;

以下代码返回了我对商业捐赠者的所有需求:

SELECT * FROM DONATION
JOIN BusinessSponser 
   on Donation.businessid_fk=businesssponser.businessid;

此外,以下查询返回所有ID,但没有名字/姓氏:

SELECT * FROM DONATION
LEFT JOIN BusinessSponser 
      on Donation.businessid_fk=businesssponser.businessid;

所以我的问题是,如何将这些查询合并为一个?我的目的是创建一个显示最终结果的视图。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

外连接是一种SQL技术,它允许我们将来自一个表的行与来自另一个表的一些行连接起来。在您的情况下,您有两个可选表,因此您需要两个左外连接:

select donationid
        , donation.donationdate
        , donation.value
        , donation.alumniid
        , alumnus.firstname
        , alumnus.lastname
        , donation.businessid
        , businesssponser.businessname
from donation 
left outer join alumnus 
    on donation.alumniid=alumnus.alumniid;
left outer join businesssponser 
    on donation.businessid_fk=businesssponser.businessid;