
Problem polega na tym, że zawartość muszę posortować w zależności od:
1. Po ID malejąco,
2. Pakiety (type = 0, id_order = NULL) mają być na samym początku (również sortowane po ID malejąco),
3. Pod pakietami (type = 0) przypisane do nich usługi id_order, posortowane według type rosnąco,
4. Cała reszta (bez pakietów), posortowane według: type rosnąco, id malejąco.
Czy mogę to zrobić w jednym zapytaniu, aby uzyskać taki wynik rekordów?:
Pakiet ID 3
Usługa1 pakiet 3
Usługa2 pakiet 3
Pakiet ID 2
Usługa1 pakiet 2
Usługa2 pakiet 2
Pakiet ID 1
Usługa1 pakiet 1
Usługa2 pakiet 1
Usługa bez pakietu ID 4
Usługa bez pakietu ID 3
Usługa bez pakietu ID 2
Wiem, że w dwóch zapytaniach łatwo to jest zrobić bo wystarczy:
SELECT * FROM `tabela` WHERE `id_order` IS NULL ORDER BY `type` ASC, `id` DESC
A w drugim:
SELECT * FROM `tabela` WHERE `id_order=id_z_pierwszego_zapytania ORDER BY `type` ASC, `id` DESC
To samo chcę uzyskać, ale w 1 zapytaniu o ile to możliwe.
Z góry dzięki za pomoc!