Dodaj do ulubionych

Operacje teoriomnogosciowe w MySql

01.02.06, 21:53
Czy w MySql sa operacje minus/except lub intersect ?
Union jest a pozostale nie dzialaja - syntax error.
Sa one dosc standardowe i powinny byc...

Dzieki za wszelka pomoc!
Obserwuj wątek
    • ktosktomafajnegomisiaczka Re: Operacje teoriomnogosciowe w MySql 01.02.06, 21:59
      HM..
      wzsystko jest zalezy jak to napiszesz..

      union powoduje zlaczenie dwoch zestawow wynikow z selectow, rzeczywiscie, ale
      to jest taki "skrot" bo sa czesto uzywane..
      generalnie wszelkie filtrowanie wynikow uzyskuje sie za pomoca kaluzul WHERE,
      np.

      damy na to masz:
      SELECT * WHERE a > 100;
      SELECT * WHERE b < 20;

      suma wynikow:
      SELECT * WHERE (a>100) OR (b<30);

      czesc wspolna:
      SELECT * WHERE (a>100) AND (b<30);

      pierwsze 'minus' drugie z zapytan
      SELECT * WHERE (a>100) AND NOT(b<30);

      drugie 'minus' pierwsze z zapytan
      SELECT * WHERE NOT(a>100) AND (b<30);

      dopelnienie pierwszego
      SELECT * WHERE NOT(a>100);

      itd..
    • mistrz_patelni Re: Operacje teoriomnogosciowe w MySql 01.02.06, 22:02
      Przyklad klasyczny z ksiazki Banachowskiego/Stencla:

      Mamy dwie tabele Emp - pracownicy i Dept - oddzialy.
      Aby wypisac numery dzialow w ktorych w danej chwili
      nie sa zatrudnieni zadni pracownicy zapytwanie w Oracle`u wyglada tak:

      SELECT Deptno FROM Dept
      MINUS
      SELECT Deptno FROM Emp;

      Pytanie jak to zrobic w MySQL i czemu nie dzialaja operacje teoriomnogosciowe...
      dziwne to troche :)
      • ktosktomafajnegomisiaczka Re: Operacje teoriomnogosciowe w MySql 01.02.06, 22:17
        ale my mowimy o MySql'u a nie o Oracle :]

        SQL nie jest wszedzie taki sam.. kazdy provider bazy danych dodaje sobie pewne
        rozszerzenia :)
      • ktosktomafajnegomisiaczka Re: Operacje teoriomnogosciowe w MySql 01.02.06, 23:09
        w mysql to by wygladaloby to samo mniej wiecej tak:

        select deptno from dept where deptno not in (select deptno from emp)

Nie pamiętasz hasła

lub ?

 

Nie masz jeszcze konta? Zarejestruj się

Nakarm Pajacyka