mySQL - COUNT() с трех табличек

R00miss

Guest
mySQL - COUNT() с трех табличек

Привет!
Такая ситуация - есть три таблички:
1. Стих
2. Комментарии
3. Авторы (пока отбросим эту)

надо сделать что то типа того:
SELECT p.title, COUNT(c.id) as nComments
FROM poems p, comments c
Where c.pid=p.id
Order by nComments <<<=== ???

т.е. надо выбрать стихи из таблички и отсортировать их по кол-ву добавленных к ним комментариев... как такое сотворить?
 

WeirD

Новичок
Попробуй что-то вроде этого:
PHP:
$result = mysql_query("SELECT p.title, COUNT(c.id) as nComments FROM poems AS p, comments AS c WHERE c.pid=p.id GROUP BY p.title ORDER BY nComments DESC");
 

R00miss

Guest
тогда он выбирает только те записи у которых есть комментарии... а надо чтоб показывал и те у которых их нет.

т.е. можно сказать он выбирает сначала комментарии, а потом под них стихи (WHERE c.pid=p.id)... а нужно чтобы он выбирал стихи и считал сколько у них комментариев
 

valyala

Новичок
тогда он выбирает только те записи у которых есть комментарии... а надо чтоб показывал и те у которых их нет
[sql]SELECT p.title, COUNT(c.id) FROM poems p LEFT JOIN comments c ON (c.pid = p.id) GROUP BY p.id ORDER BY 2 DESC[/sql]
Ключевое слово - LEFT JOIN
 
Сверху