MySQL - 加入查询以包含不匹配的记录

MySQL - join query to include unmatched records

我正在学习 MySQL 但我找不到解决这个问题的方法。
我有三个表:

Companies:

CompanyID (PRIMARY KEY) EntryDate CompanyName
6 2000-01-01 foo
13 2000-01-02 bar

CompaniesAndFunds:

Company
1
23

NatureOfCompanyDefs:

NatureOfCompanyID (PRIMARY KEY) NatureOfCompany
12 foo
88 bar

如何修改此查询以便结果也包含不匹配的记录,我的意思是 - 包含未分配“自然”的“公司”:

SELECT
    Companies.EntryDate,
    Companies.CompanyName,
    NatureOfCompanyDefs.NatureOfCompany,
    CompaniesAndFunds.Company 
FROM
    CompaniesAndFunds
    INNER JOIN Companies ON CompaniesAndFunds.Company = Companies.CompanyID
    INNER JOIN NatureOfCompanyDefs ON Companies.NatureOfCompany = NatureOfCompanyDefs.NatureOfCompanyID

这是因为您使用的是内部联接而不是左联接。 Inner Joins 将专门显示匹配项,而 left 将显示甚至不匹配的行。尝试:

SELECT
    Companies.EntryDate,
    Companies.CompanyName,
    NatureOfCompanyDefs.NatureOfCompany,
    CompaniesAndFunds.Company 
FROM
    CompaniesAndFunds
    INNER JOIN Companies ON CompaniesAndFunds.Company = Companies.CompanyID
    LEFT JOIN NatureOfCompanyDefs ON Companies.NatureOfCompany = NatureOfCompanyDefs.NatureOfCompanyID