Вопрос для доказательства концепции здесь:порядка двух различных строк в одном запросе
В основном я хочу, чтобы объединить следующие два запроса в один:
SELECT `cat` FROM `test` group by `cat` order by `catSort`,`ID` desc
$cat--> SELECT * FROM `test` where `cat`=$cat group by `cat2` order by `cat2Sort`,`ID` desc
Позвольте мне продуманными. Предположим, у меня есть следующая таблица: test
-----------------------------------------
| ID | cat | cat2 | catSort | cat2Sort |
|----------------------------------------
| 1 | cat | sub | 0 | 0 |
| 2 | cat | sub2 | 0 | 1 |
| 3 | cat | sub | 0 | 1 |
| 4 | cat2 | sub | 1 | 0 |
| 5 | cat2 | sub2 | 1 | 0 |
| 6 | cat | sub2 | 0 | 0 |
----------------------------------------
Что это делает это имеет две категории, где cat2
является подкатегорией cat
и cat
отсортирован по catSort
и cat2
сортируется, как вы уже догадались, cat2Sort
. Иерархия это должно выглядеть следующим образом:
cat
sub ID:1
sub ID:3
sub2 ID:6
sub2 ID:2
cat2
sub ID:4
sub2 ID:5
Как я могу добиться этого НЕ order by catSort, cat2Sort
как-то добавляется позже. Их нужно заказать по адресу ID
, чтобы вновь добавленные записи шли снизу, но в то же время сортируйте по полям сортировки, если они установлены. например order by catSort, cat2Sort, ID
.
Также мне нужно сгруппировать их в другой запрос, чтобы получить это:
cat
sub ID:1
sub2 ID:6
cat2
sub ID:4
sub2 ID:5
Моя первая мысль была группа два поля вместе, и группа их. Что-то вроде:
SELECT *, combine(`cat`,`cat2`) as `tempCat` FROM `test`
group by `tempCat` order by `catSort`,`serSort`,`ID` desc
Но, конечно, это полностью составлено.
Есть идеи?
'Как я могу заархивировать это, НЕ заказать по catSort, cat2Sort как-то добавляется later' ... да, я знаю, но это было бы просто ... легко, не так ли? ;) Спасибо, в любом случае – Dominik