I need some help writing a query that will return only rows that have a specific field in comman with each other. I can do this but was wondering if there was a better way to do it that how I plan. The way I have working would require me to create the SQL dynamically based on what the user inputs. Is there a better way. I have simplified the table and data below: This Query shows OrganizationID's which have a common affiliationID of 1, or 4. SELECT organization_affiliation.OrganizationIDFROM organization_affiliationWHERE organization_affiliation.OrganizationID IN (SELECT organization_affiliation.OrganizationID FROM organization_affiliation WHERE organization_affiliation.AffiliationId=1)AND organization_affiliation.AffiliationId=4
Returns ABC, XYZ and CCCThis Query shows OrganizationID's which have a common affiliationID of 1, 5, or 4. Problem is the more affiliatedID criteria that is added you have to make another AND with a sub-query. Is there a better way to achieve this.SELECT organization_affiliation.OrganizationIDFROM organization_affiliationWHERE organization_affiliation.OrganizationID IN (SELECT organization_affiliation.OrganizationID FROM organization_affiliation WHERE organization_affiliation.AffiliationId=1)AND organization_affiliation.OrganizationID IN (SELECT organization_affiliation.OrganizationID FROM organization_affiliation WHERE organization_affiliation.AffiliationId=5)AND organization_affiliation.AffiliationId=4
Returns ABC and CCC The organization_affiliation table and info as an example:AffiliationId OrganizationID1 ABC1 XYZ1 XXX1 CCC2 ABC3 XYZ4 ABC4 XYZ4 CCC5 AAA5 CCC5 ABC6 BBB