[英]MySQL - join query to include unmatched records
我正在学习 MySQL 但我找不到解决这个问题的方法。
我有三张桌子:
Companies
:
公司 ID(主键) | 入境日期 | 公司名称 |
---|---|---|
6 | 2000-01-01 | 富 |
13 | 2000-01-02 | 酒吧 |
CompaniesAndFunds
:
公司 |
---|
1 |
23 |
NatureOfCompanyDefs
:
NatureOfCompanyID(主键) | 公司性质 |
---|---|
12 | 富 |
88 | 酒吧 |
如何修改此查询,以便结果也将包括不匹配的记录,我的意思是 - 包括“公司”而不分配“自然”:
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
这是因为您使用的是内连接而不是左连接。 内连接将专门显示匹配项,而左连接将显示不匹配的行。 尝试:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.