Войти

Показать полную графическую версию : [решено] Сортировка данных с таблы по содержимому другой таблицы


xNiSSaNx
07-04-2012, 10:27
У меня есть таблица them (`id`,`msg`)и komm(`id_them`,`msg`) где id с первой таблицы равно id_them со второй, тоесть это как бы тема, с комментариями.
И нужно вывести записи с табилицы them отсортированные по количеству записей с komm где them.id = komm.id_them
Например:
------------them---------------
|ID|_msg____|
| 1 | text_id1 |
| 3 | text_id3 |
| 4 | text_id4 |
| 8 | text_id8 |
| 9 | text_id9 |

------------komm---------
|id_them| _ msg _ _ |
| _ 4 _ | text |
| _ 1 _ | text |
| _ 3 _ |text |
| _ 4 _ |text|
| _ 1 _ |text|
| _ 4 _ |text|
| _ 4 _ |text|
| _ 3 _ |text|
| _ 4 _ |text|
| _ 1 _ |text|
| _ 8 _ |text|
Чтоб результат выполнения запроса был такой
text_id4 (5 komm)
text_id1(3 komm)
text_id3(2 komm)
text_id8(1 komm)
text_id9(0 komm)

PhilB
07-04-2012, 17:25
Если я верно понял вопрос, то так:

SELECT them.msg, COUNT(komm.id_them) AS komm_count FROM them
INNER JOIN komm.id_them = them.id
GROUP BY komm.id_them
ORDER BY komm_count DESC;

xNiSSaNx
08-04-2012, 07:29
Спасибо, попробую...

xNiSSaNx
12-04-2012, 19:16
Выбивает ощибку You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.id GROUP BY forum_p.id_them ORDER BY komm_count DESC' at line 2

PhilB
12-04-2012, 21:30
Виноват, верно так:

SELECT them.msg, COUNT(komm.id_them) AS komm_count FROM them
INNER JOIN komm ON komm.id_them = them.id
GROUP BY komm.id_them
ORDER BY komm_count ;

xNiSSaNx
13-04-2012, 15:01
Ага, так нужно. :D правда я еще вчера исправил




© OSzone.net 2001-2012