Colonne SQL de comparer dans le même tableau (auto-jointure)

J'ai besoin d'un conseil pour résoudre ce SQL (auto-jointure) problème:

une table, avec des colonnes de value et category

 id    ||  value || category || foo
------------------------------------
 1     ||  1     || a        || 1
 2     ||  2     || a        || 4
 3     ||  3     || a        || 2
 4     ||  0     || b        || 2
 5     ||  1     || b        || 1
 6     ||  2     || b        || 4
 7     ||  3     || b        || 2
 8     ||  4     || b        || 2
 9     ||  5     || b        || 1
10     ||  5     || b        || 4
11     ||  6     || b        || 2
12     || 99     || z        || 2

Je voudrais comparer toutes les valeurs de la catégorie b et toutes les valeurs de la catégorie a et obtenir toutes les valeurs qui sont dans b et pas dans a ou leur id, donc:

(0,1,2,3,4,5,5,6) "comparer" (1,2,3) => (0,4,5,5,6)

  • Qui SGBD que vous utilisez? Postgres? Oracle?
  • je suis à la recherche d'un "ansi sql" la solution, c'est de travailler avec mysql, sqlite et postgresql.
  • Un "ANSI" solution généralement ne fonctionne pas sur MySQL en raison de il est périmé SQL de mise en œuvre (EXCEPT vient immédiatement à mon esprit à la lecture de votre description du problème).
InformationsquelleAutor inselberg | 2013-04-09