Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Сортировка данных с таблы по содержимому другой таблицы (http://forum.oszone.net/showthread.php?t=232261)

xNiSSaNx 07-04-2012 10:27 1895018

Сортировка данных с таблы по содержимому другой таблицы
 
У меня есть таблица 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 1895212

Если я верно понял вопрос, то так:
Код:

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 1895459

Спасибо, попробую...

xNiSSaNx 12-04-2012 19:16 1898460

Выбивает ощибку 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 1898535

Виноват, верно так:
Код:

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 1898872

Ага, так нужно. :D правда я еще вчера исправил


Время: 14:25.

Время: 14:25.
© OSzone.net 2001-