![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 153 Pomógł: 0 Dołączył: 20.04.2017 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jak zgrupować dane w jednym wierszu a w kolejnych wierszach wyświetlić szczegóły.
Jak z dwóch tabel: Kod +---------------+-----------------+ | kategoria_id | nazwa_kategori | +---------------+-----------------+ | 1 | sensacja | +---------------+-----------------+ | 2 | dramat | +---------------+-----------------+ | 3 | komedia | +---------------+-----------------+ Kod +-------------+---------------+-------+ | ksiazka_id | kategoria_id | tytuł | +-------------+---------------+-------+ | 1 | 1 | AAA | +-------------+---------------+-------+ | 2 | 1 | BBB | +-------------+---------------+-------+ | 3 | 2 | CCC | +-------------+---------------+-------+ | 4 | 2 | DDD | +-------------+---------------+-------+ | 5 | 3 | EEE | +-------------+---------------+-------+ | 6 | 3 | FFF | +-------------+---------------+-------+ osiągnąć coś takiego: Kod +------------------+-------+
| nazwa_kategorii | tytuł | +------------------+-------+ | sensacja | | +------------------+-------+ | | AAA | +------------------+-------+ | | BBB | +------------------+-------+ | dramat | | +------------------+-------+ | | CCC | +------------------+-------+ | | DDD | +------------------+-------+ | komedia | | +------------------+-------+ | | EEE | +------------------+-------+ | | FFF | +------------------+-------+ |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Zapewne potrzebne ci to do wyswietlania wiec
http://nospor.pl/grupowanie-wynikow.html -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 153 Pomógł: 0 Dołączył: 20.04.2017 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
chciałbym dokładnie taki wynik zapytania. Czy da się to zrobić czystym SQL?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Raczej nie. A jesli nawet by sie dalo, to bylby to przerost tresci nad forma
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 5 Dołączył: 27.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
chciałbym dokładnie taki wynik zapytania. Czy da się to zrobić czystym SQL? Tak, dość prosto:
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 153 Pomógł: 0 Dołączył: 20.04.2017 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Tak, dość prosto: Możesz rzucić okiem czy poprawnie przerobiłem rzeczywistą bazę?:
![]() To jednak nie o to mi chodziło. Kluczowe dla mnie było by wiersz grupujący był NAD wierszami danej grupy. Ten post edytował szczrzcz 26.06.2017, 21:09:59 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 5 Dołączył: 27.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
A co jest grupownikiem? Jeżeli dobrze widzę, to product_name?
W rozwiązaniu, które podałem chodzi o to, że warianty produktów mają NULL w nazwie produktu, a nazwy (kategorie) produktów mają NULL w wariancie (v.sku) i cały "myk" jest w późniejszym posortowaniu tego. Najpierw po wspólnym id, później po nazwie kategorii, a na koniec ewentualnie po wariancie. Warianty produktów będą miały NULL w nazwie kategorii więc spadną niżej jak się określi w sortowaniu, że wartości nullowe mają być na końcu. Podałem rozwiązanie z Postgresa, nie wiem czy w MySQL jest "order by (...) nulls last", czy domyślnie w MySQL nulle wpadają na koniec, czy jest jakiś inny sposób. Jeśli nie ma, to wystarczy dodać stałą do każdego podzapytania, po której posortujesz zamiast odnosić się do nulli. Twoje zapytanie pewnie będzie wyglądało w ten sposób:
BTW: Brakuje mi tu jeszcze jakiegoś warunku na język w nazwie produktu, bo dla product_variation jest en, a dla product_translation nie ma. Chyba, że czegoś nie widzę |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 153 Pomógł: 0 Dołączył: 20.04.2017 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Genialne
(tzn poza tym, że wiersze grupujące mam pod a nie nad wierszami wariantów, ale pokazałeś że można). dziękuję. Ten post edytował szczrzcz 27.06.2017, 18:23:37 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 5 Dołączył: 27.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Nie ma za co;-)
(...) poza tym, że wiersze grupujące mam pod a nie nad wierszami wariantów(...). To możesz wprowadzić sztuczną kolumnę (nazwijmy ją kolejnosc, po której posortujesz:
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 02:50 |