Mysql
 sql >> база данни >  >> RDS >> Mysql

Заявка за потребители, които не са в конкретна група? (Исках да използвам EXCEPT, но изглежда, че MySQL не го поддържа)

Можете да използвате NOT IN() , или <> ВСЯКО ()

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'
)

Като алтернатива можете да използвате LEFT JOIN с 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Alter Table Добавяне на поле Преди или След вече съществуващо поле

  2. MYSQL заявка за получаване на разлика в датата

  3. Има ли някаква печалба в производителността при индексирането на булеви полета?

  4. PHP цикъл, действащ като cronjob [осигурете работещ само един екземпляр]

  5. запишете резултатите от sql заявка във файл в mysql