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

MySQL A o B ma NON entrambi

Qualcosa del genere dovrebbe soddisfare le specifiche:

SELECT f.bar 
  FROM frequents f
 WHERE f.drinker IN ('John','Rebecca')
 GROUP 
    BY f.bar
HAVING COUNT(DISTINCT f.drinker) < 2
  • ottieni tutte le bar per 'John' e/o 'Rebecca'
  • comprimi le righe in un'unica riga per ogni bar
  • ottieni un conteggio di drinker per ogni barra
  • elimina le righe che hanno un conteggio pari a 2 (ovvero sia John che Rebecca)
  • lasciando solo i valori di bar per John e non per Rebecca o viceversa