sql >> Databasteknik >  >> RDS >> Mysql

Fråga efter användare som inte tillhör en specifik grupp? (Ville använda UTOM men det verkar som att MySQL inte stöder det)

Du kan använda en NOT IN() , eller en <> NÅGON ()

SELECT CaseId
FROM CaseIdUsers
WHERE CaseID NOT IN (
  SELECT CaseId 
  FROM CaseIdUsers
    JOIN GroupMembers ON GroupMembers.User = CaseIdUsers.Sid
    JOIN Groups ON GroupMembers.Group = Groups.Sid
  WHERE Groups.Name = 'MyGroupName'
)

Alternativt kan du använda en LEFT JOIN med en GROUP BY

SELECT CaseId 
FROM CaseIdUsers
  LEFT JOIN GroupMembers ON GroupMembers.User = CaseIdUsers.Sid
  LEFT JOIN Groups ON GroupMembers.Group = Groups.Sid
    AND Groups.Name = 'MyGroupName'
HAVING COUNT(Groups.Sid) = 0



  1. Får du använda siffror som tabellnamn i MySQL?

  2. Sortera kulor i databasen

  3. Hur man hämtar en <karta> i Hibernate

  4. Behöver hjälp igen om att gå med i bord