Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

MySQL - użycie funkcji UNION ?

braciszek0 24 Lis 2011 21:02 1015 4
  • #1 24 Lis 2011 21:02
    braciszek0
    Poziom 12  

    Stworzyłem sobie na wirtualnym serwerze stronkę PHP do prezentacji danych z bazy MySQL. Celem upiększenia postanowiłem wstawić sobie jeszcze wykres słupkowy. I tu zrodził się właśnie mały problem.
    Do opisu słupków chcę użyć nazw, które powstaną po złączeniu komórek z dwóch kolumn.
    Polecenie proste

    Kod: mysql
    Zaloguj się, aby zobaczyć kod


    Wartościami słupków ma być suma powtarzających się wpisów czyli
    Kod: mysql
    Zaloguj się, aby zobaczyć kod

    I tu zrodził się mi problem. Nie wychodzi mi użycie poleczenia UNION tak by w efekcie końcowym uzyskać tylko tabelę z kolumnami `name` i `Ilosc`.

    Czy byłbyś tak ktoś miły i połączył mi te dwa polecenia w jedno.

    0 4
  • Pomocny post
    #2 24 Lis 2011 21:42
    korrus666
    Poziom 40  

    Union działa trochę inaczej niż myślisz. Po pierwsze przy użyciu Union oba zapytania muszą mieć tyle samo kolumn i kolumny tego samego typu. Po drugie Union nie robi Ci więcej kolumn tylko wierszy.
    Tu trzeba zrobić jedno zapytanie. Nie bardzo jednak wiem jaką masz strukturę tabel? Czemu zapytanie jest z dwóch.
    Nie możesz po prostu tego drugiego zapytania zmienić na :
    SELECT concat(`Miejsce_bledu`,'----', `Blad`) as nazwa, COUNT(*) AS `Ilosc` FROM `shaker`.`beanstandungen_polnisch` WHERE ( `Data_kontroli` >= '2011-07-24') AND (`Data_kontroli` <= '2011-11-24') GROUP BY `Miejsce_bledu`, `Blad` ORDER BY `Ilosc` DESC

    0
  • #3 25 Lis 2011 06:30
    braciszek0
    Poziom 12  

    Podobnie też próbowałem, lecz wywalało mi błąd. Może przez to że w GROUP BY próbowałem wstawić nową kolumnę powstałą z COUNT.
    Dziwnym trafem twoja składnia zadziałała od razu.
    Dziękuję temat rozwiązany.

    0
  • #5 29 Lis 2011 07:18
    braciszek0
    Poziom 12  

    korrus666 dzięki

    0