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

Andrey Oparin

Новичок
запрос для посчета количества записей с использованием двух таблиц

есть табличка categ в ней 2 поля id_categ и categ
и есть вторая табличка object, где хранятся записи, для каждой categ несколько....
мне надо вытащить сами названия categ и чтоб рядом писалось сколько записей у каждой.

если делать вот такой запрос
PHP:
	 $qr = "SELECT *, COUNT(object.id_categ) FROM object, categ WHERE categ.id_categ = object.id_categ ORDER BY categ";
     $r = mysql_query($qr);
	 while ($rr = mysql_fetch_array($r))
    {
    }
то выводится ошибка:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
если вместо ORDER BY пишу GROUP BY , то выводятся только те категрии в которых есть записи.... как сделать чтобы выводились все? подскажите пожалуйста
 

Andrey Oparin

Новичок
ничег оне выводит.. никакой ошибки... просто вводит тока те категории где записи и все.... я наверно где-о неправильно запрос остаавил, вот только в чем ошибка?
 

sage

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

Andrey Oparin

Новичок
что непонятного?
я же наверху написал как устроены таблички... так вот с таким запросом скрипт выводит только те категори, в которых есть записи.... грубо говоря в табличке categ есть 4 записи с id_categ = 1, =2, =3, =4 .... а во второй табличке есть записи только с id_categ =1, =2 ... так вот я хочу, что скрипт выводил все категории, а не только где есть записи
 

sage

Новичок
ты выполнил запрос в пхпмайадмин?
если вместо ORDER BY пишу GROUP BY , то выводятся только те категрии в которых есть записи....
это не поэтому, а потому что у тебя в условии WHERE так указано
 

Socrat

Новичок
В мануалах по муське четко описаны принципы работы с несколькими таблицами.

Копай в эту сторону.

Подскажу -

Используй не перемножение таблиц а LEFT JOIN...
 

Andrey Oparin

Новичок
сделал вот так, вроде работает :)

PHP:
	 $qr = "SELECT *, COUNT(object.id_categ) FROM categ LEFT JOIN object ON categ.id_categ = object.id_categ GROUP BY categ";
     $r = mysql_query($qr);
	 mysql_error();
	 while ($rr = mysql_fetch_array($r))
    {
    }
 
Сверху