[MySQL] Różnica zbiorów

0

Czy ktoś mógłby mi napisać zapytanie MySql aby uzyskać różnice zbiorów:

mysql> select id from spis
+----+
| id |
+----+
|  1 |
|  2 |
|  3 |
|  5 |
|  6 |
|  7 |
|  8 |
|  9 |
| 10 |
| 11 |
| 22 |
| 23 |
| 24 |
| 25 |
| 26 |
| 27 |
| 28 |
| 29 |
| 30 |
| 31 |
| 32 |
| 33 |
| 34 |
| 35 |
| 36 |
+----+

POMNIEJSZONE O:

mysql> select spis from kasa;
+------+
| spis |
+------+
|    1 |
|    2 |
|    3 |
|    5 |
|    7 |
|    8 |
|    9 |
|   10 |
|   22 |
|   23 |
|   24 |
|   25 |
|   26 |
|   27 |
|   28 |
|   30 |
|   31 |
+------+

próbowałem to zrobić przez
(SELECT id FROM spis) MINUS (SELECT spis FROM kasa)
i
(SELECT id FROM spis) DIFFERENCE (SELECT spis FROM kasa)
ale nie ort! operatorów.
Mam MySql 4.1.18-nt

0

OK już wiem jak to zrobić

SELECT id FROM spis
WHERE (id) NOT IN
(SELECT spis FROM kasa);

0

sprawdz to dla wikeszych zriobow bo z tego co mi sie kojarzy to np w firebirdzie to co masz w "IN" (...), nie moze miec wiecej niz 1000 elementow :)

0

...masz racje ;/

0

Już wiem:
SELECT spis.id FROM spis
LEFT JOIN
kasa ON (spis.id = kasa.spis)
WHERE kasa.spis IS NULL;

Teraz nawet szybciej działa.
Dzięki, że mi napisałeś bo miałbym później kłopoty;]

1 użytkowników online, w tym zalogowanych: 0, gości: 1