ОК, у меня сложный запрос из плохо спроектированной БД ... В одном запросе мне нужно получить счетчик из одной базы данных, информацию из другой со ссылкой из другой, вот так:
Каждый блог имеет тип (новости, отчеты и т. Д.) И идентификатор раздела для определенной части сайта, но он также может быть связан с несколькими компьютерными играми и разделами)
тип (blog_id, title, body и т. Д.) // да, я знаю, что тип - это имя блога, а не просто номер идентификатора в таблице, а не мой дизайн
blog_link (blog_id, blog_type, section_id, game_id)
blog_comments (blog_id, blog_type, comment и т. Д.) *
Итак, запрос выглядит примерно так:
SELECT bl.`blog_id`, count(bc.`blog_id`) AS 'comment_count', t.`added`
FROM blog_link bl
JOIN type t ON t.`id` = bl.`blog_id`
JOIN blog_comments bc ON (`item_id` = bl.`blog_id` AND `blog_type` = '[$type]')
WHERE bl.`section_id` = [$section_id] AND bl.`blog_type` = '[$type]'
GROUP BY bl.`blog_id`
ORDER BY `added` DESC
LIMIT 0,20
Теперь это нормально, если у меня нет нескольких игр, связанных с одним блогом.
Редактировать: Таким образом, в настоящее время, если связано более чем одна игра, поле comment_count умножается на количество связанных игр ... не хорошо.
Я понятия не имею, как я мог это сделать ... Это просто не работает! Если бы я мог каким-то образом сгруппироваться по blog_id, прежде чем присоединиться, это было бы золото ... у кого-нибудь есть идея?
Большое спасибо заранее
edit2: Я предложил щедрость, поскольку эту проблему, безусловно, можно решить !! Давай, ребята!