Loading:


    SQL JOIN - co to jest, kiedy używać oraz jak stosować?

    7. Łączenie oraz grupowanie


    Czy zastanawiałeś się kiedyś, który z klientów zamawia zawsze najwięcej produktów danego koloru?
    Ładną i wygodną do tego celu, który klient zamówił ile produktów jest użycie słowa GROUP BY.


    SELECT klienci.klient_id, klienci.klient_imie, COUNT(produkty.condom_kolor) AS wszystkie_zamowienia FROM klienci
    JOIN produkty
    ON klienci.klient_id = produkty.klient_id
    GROUP BY klienci.klient_id;




    Aby zobaczyć klientów którzy nie zamówili jeszcze nic, należy użyć umiłowanego LEFT JOINa:



    SELECT klienci.klient_id, klienci.klient_imie, COUNT(produkty.condom_kolor) AS wszystkie_zamowienia FROM klienci
    LEFT JOIN produkty
    ON klienci.klient_id = produkty.klient_id
    GROUP BY klienci.klient_id;

     

    Oba przykłady różni tylko to, że w drugim zapytaniu dodaliśmy słowo LEFT.

     

    Opiszmy więc może pierwszy przykład, dla którego wszukujemy ludzi, którzy złożyli lub też jeszcze nie złożyli jeszcze zamówienia.

     

    Pierwsza linia informuje jakie kolumny będą wyświetlane, dzięki słowu COUNT oraz nazwie kolumny możemy ustalić ilość zamówień dla każdego klienta. Później następuje połączenie dwóch tabel, oraz warunek który powinien być spełniony. Na końcu grupujemy nasze wyniki według numer ID klientów, dzięki temu również nie będziemy mieli powtarzających się wpisów w liście.

     

    Czyli wynik będzie następujący:

     

    klient_id klient_imie wszystkie_zamowienia
    1 Jan 3
    2 Tomek 0
    3 Dawid 2
    4 Adam 1


    Dalsza czê¶æ: 1 2 3 4 5 6 7
    Napisz Artyku³






    Dodano przez: divix
    Ranga: Administrator serwisu Punktów: 0
    Komentarze użytkowników
    Pisząc kod lepiej unikać RIGHT JOIN - w razie konieczności obsługi SQLite będą problemy, bo SQLite ma tylko LEFT JOIN.
    autor: freebox | 13031 | 2014-10-26 08:08:27


      • 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