SELECt Users.idUserFROM UsersINNER JOIN Licenses ON Licenses.IdUser = Users.idUserINNER JOIN LicensesEquipments ON LicensesEquipments.IdLicense = Licenses.IdLicenseINNER JOIN Equipment ON Equipment.IdEquipment = LicensesEquipments.IdEquipmentWHERe Equipment.IdEquipment IN ('A', 'B', 'C')GROUP BY IdUserHAVINg COUNT(DISTINCT Equipment.IdEquipment) = 3 <--must be # of unique items in IN clause如果您确实只需要用户ID,则可以从查询中删除
Users和
Licenses表:
SELECt Licenses.IdUserFROM Licenses INNER JOIN LicensesEquipments ON LicensesEquipments.IdLicense = Licenses.IdLicenseWHERe LicensesEquipments.IdEquipment in ('A', 'B', 'C')GROUP BY Licenses.IdUserHAVINg COUNT(DISTINCT LicensesEquipments.IdEquipment) = 3另外,一些别名使阅读起来更容易:
SELECt l.IdUserFROM Licenses lINNER JOIN LicensesEquipments le ON le.IdLicense = l.IdLicenseWHERe le.IdEquipment in ('A', 'B', 'C')GROUP BY l.IdUserHAVINg COUNT(DISTINCT le.IdEquipment) = 3


