这是我公司的桌子

CompanyID, CompanyName


这是我的联系表

ContactID, ContactName, CompanyID


这是我的报告表

ReportID, ReportName


这是我的ReportContact表,多对多关系

ContactID, ReportID


我想返回所有我的1家公司的所有CONTACTID,包括那些未分配给任何报告的公司,我也想返回分配给不同联系人的reportID

1个联系人可以分配给许多报告
1个报告可以包含许多联系人

我当前的SQL代码只能在ReportContactTable中获取2 contactID

SELECT rc.ContactID, rc.ReportID  from contact c INNER JOIN Reportcontact rc on c.ContactID = rc.ContactID Where CompanyID=1


如何返回所有联系人,包括那些不在reportcontact表中但同时获得reportID的联系人?

最佳答案

INNER JOIN过滤掉不在ReportContact中的那些行。如果要LEFT JOIN表中的所有联系人,请尝试使用contact

SELECT rc.ContactID, rc.ReportID
  FROM contact c LEFT JOIN Reportcontact rc
    ON c.ContactID = rc.ContactID
 WHERE CompanyID = 1

关于mysql - MySQL-如何使用INNER JOIN显示所有联系人及其状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17038068/

10-11 01:40