Вопрос - Ответ по MySQL

Печать RSS
3126

О

Землянин
0
Приведи структуру обоих таблиц. В данном случае у тебя функция COUNT с большей уверенностью вернет только 1, потому что нету группировки по конкретному полю.

2000 лет д.н.э.
0
Возвращает не 1 а 3 (как раз 3 записи в таблице), независимо от того совпадает ключ или нет.
Блоги id int(11) A.U., name TEXT, message TEXT, autor int(11)...
Комменты id int(11) A.U., message TEXT, autor int(11), blogpost int(11)...
blogpost - ключ, равен ид записи в первой таблице.
Проблемы 2, всегда считает все комменты а не те которые завязанны на ид первой таблицы, и выводит как ORDER BY table.id ASC хотя в запросе^ DESC стоит.
// суть вывести листинг блогов и посчитать сколько комментов к каждому из них и вывести число.
Можно просто отвлеченный пример, лишь бы рабочий, под свои нужды сам заточуsmile
О

Землянин
0
это не структура ))))
Чтобы смог тебе помочь приведи пожалуйста структуру таблиц)

2000 лет д.н.э.
0
А что это тогда? И что есть «структура»?
Я все описал, есть 'таблица', и есть 'субтаблица' с ключем на ид из 'таблицы'. Все.
О

Землянин
0
это дамп струтктуры sql-запроса на создание таблиц и связующих ключевых полей

2000 лет д.н.э.
0
$sql->query("CREATE TABLE blog_post (id int(16) NOT NULL auto_increment, name TEXT NOT NULL, opis TEXT NOT NULL, message TEXT NOT NULL, autor TEXT NOT NULL, time int(16), blog int(16), see int(16) DEFAULT 0, rating int(16) DEFAULT 0, tags TEXT, PRIMARY KEY (id), KEY blog (blog) ) ENGINE=MyISAM DEFAULT CHARSET=utf8");
$sql->query("CREATE TABLE blog_komm (id int(11) NOT NULL auto_increment, blogpost int(16) NOT NULL, blog int(16) NOT NULL, message TEXT NOT NULL, time int(16), autor TEXT NOT NULL, ip TEXT NOT NULL, PRIMARY KEY (id), KEY blogpost (blogpost), KEY blog (blog) ) ENGINE=MyISAM DEFAULT CHARSET=utf8");
красным ключ на ид блога. Не пойму хоть убей что ты хочешь тут увидеть чего я ранее не написала.. Блин уже бесит тупой запрос этотsad
О

Землянин
0
Попробуй и отпиши
SELECT
 count(*),blogpost.*
FROM
 test.blogpost
 INNER JOIN test.comments ON blogpost.id = comments.blogpost
 GROUP BY blogpost.id
 ORDER BY blogpost.id
 
О

Землянин
0
только отредактируй запрос, в нем указана моя тестовая база test

2000 лет д.н.э.
0
Гм.. Я если честно не понял кода.. Что это за третья таблица 'тест', откуда она и зачем..

2000 лет д.н.э.
0
Забей вобщем, отказался от этой дурной затеи, сделал статический счетчик.
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск