2013-04-02 2 views
0

Вопрос для доказательства концепции здесь:порядка двух различных строк в одном запросе

В основном я хочу, чтобы объединить следующие два запроса в один:

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 

Но, конечно, это полностью составлено.

Есть идеи?

ответ

0

Использование можно сортировать двумя колоннами, как пыльник

ORDER BY `column1` ASC/DESC, `column2` ASC/DESC 
+0

'Как я могу заархивировать это, НЕ заказать по catSort, cat2Sort как-то добавляется later' ... да, я знаю, но это было бы просто ... легко, не так ли? ;) Спасибо, в любом случае – Dominik

Смежные вопросы