Written by georg
on Oktober 4, 2011
In der relationalen Algebra existiert die einfache Möglichkeit, eine Differenz zwischen zwei Tabellen zu bilden. Das geht über den Operator MINUS oder auch Differenz genannt.
Dazu heißt es:
Bei der Operation R-S werden aus der ersten Relation R alle Tupel entfernt, die auch in der zweiten Relation S vorhanden sind.
Aber MySQL sieht keinen solchen Operator vor.
Die Aufgabe lässt sich aber trotzdem einfach lösen:
mysql> select * from r; +------+------+------+ | a | b | c | +------+------+------+ | 1 | 2 | 3 | | 4 | 2 | 3 | | 4 | 5 | 6 | | 2 | 5 | 3 | | 1 | 2 | 6 | +------+------+------+ 5 rows in set (0.00 sec) mysql> select * from s; +------+------+------+ | a | b | c | +------+------+------+ | 2 | 5 | 3 | | 2 | 5 | 4 | | 4 | 5 | 6 | | 1 | 2 | 3 | +------+------+------+ 4 rows in set (0.00 sec) mysql> select a,b,c from r where (a,b,c) not in (select a,b,c from s); +------+------+------+ | a | b | c | +------+------+------+ | 4 | 2 | 3 | | 1 | 2 | 6 | +------+------+------+ 2 rows in set (0.00 sec)
Schreibe einen Kommentar