sql >> Database teknologi >  >> RDS >> Mysql

Forespørgsel efter brugere, der ikke er i en bestemt gruppe? (Ønskede at bruge UNDTAGET, men det ser ud til, at MySQL ikke understøtter det)

Du kan bruge en NOT IN() , eller en <> ALLE ()

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 bruge 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. Konverter lokal TIME_STAMP til UTC-tid

  2. Mysql - Forhindring af duplikerede indtastninger af kombinerede kolonner med Unique Index

  3. Hvordan kan jeg bruge PDO til at hente et resultatarray i PHP?

  4. MySQL-samling til portugisisk