Loading:


    Używanie EXISTS oraz NOT EXISTS - MySQL

    Jeśli podzapytanie zwraca jakąkolwiek wartość, wtedy wyrażenie EXISTS podzapytanie zwraca wartość TRUE, natomiast NOT EXISTS podzapytanie zwraca FALSE.

     

    Na przykład (patrz listing 1.0).

     

     

    W przykładzie tym, jeśli tab2 zawiera jakiekolwiek wiersze, nawet wiersze, kóre nie zwierają nic innego poza wartością NULL wtedy warunek EXISTS jest zawsze równy TRUE.

    Następne przykłady:

     

     

    • Jaki rodzaj sklepu występuje w jednym lub więcej miejscowościach? (patrz listing 2.0)

    • Jakiego rodzaju sklepu nie ma w żadnym mieście? (patrz listing3.0)

    • Jaki rodzaj sklepu występuje we wszystkich miastach? (patrz listing 4.0)

     

    W ostatnim przykładzie mamy podwójnie zagnieżdżone zapytanie z NOT EXISTS. Formalnie, to zapytanie to brzmi: "czy istnieje miasto ze sklepem, którego nie ma wśród sklepów"? Ale można też prościej zapytać po prostu: "czy x jest prawdziwe dla wszystkich y"?



    Napisz Artyku³

    Listing

    --Listing 1.0
    SELECT col1 FROM tab1 WHERE EXISTS (SELECT * FROM tab2);

    --Listing 2.0
    SELECT DISTINCT rodzaj_sklepu FROM sklepy
         WHERE EXISTS (SELECT * FROM miasta_sklepy
           WHERE miasta_sklepy.rodzaj_sklepu = sklepy.rodzaj_sklepu);  

    --Listing 3.0
    SELECT DISTINCT rodzaj_sklepu FROM sklepy
         WHERE NOT EXISTS (SELECT * FROM miasta_sklepy
           WHERE miasta_sklepy.rodzaj_sklepu = sklepy.rodzaj_sklepu);

    --Listing 4.0
    SELECT DISTINCT rodzaj_sklepu FROM Stores S1
         WHERE NOT EXISTS (
           SELECT * FROM miasta WHERE NOT EXISTS (
            SELECT * FROM miasta_sklepy
             WHERE miasta_sklepy.miasto = miasta.miasto
              AND miasta_sklepy.rodzaj_sklepu = sklepy.rodzaj_sklepu));




    Dodano przez: divix
    Ranga: Administrator serwisu Punktów: 0
    Komentarze użytkowników
      • Tre¶æ komentarza
        Kod do komentarza (opcjonalnie)
        PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
        Autor
        Token
        token

         

         








    funkcje.net
    Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2025 v.1.5 | design: diviXdesign & rainbowcolors