这是我公司的桌子
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/