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
我正在学习 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