Есть запрос:
SELECT * FROM `groups`
И есть запрос:
SELECT COUNT(*) donor_posts_count FROM `donor_posts` WHERE `group_id` = '{$group_id}' AND UNIX_TIMESTAMP(CURRENT_DATE()) < time
Как мне объединить их таким образом что бы результат выдавал список имеющихся групп а также добавлялся столбец где была бы информация о количестве записей за сегодняшний день у определённой группы.
Структура groups
:
`id`, `group_id`
Структура donor_posts
:
`id`, group_id, `post_id`, `time`
Отдельно результаты работают, но это получается 2 запроса за одно выполнение скрипта, я хочу сократить до 1 запроса. Но не могу сообразить как, пробовал пример разные, ничего не получается. Надеюсь я понятно объяснил того что хочу добиться. Спасибо за внимание.
Хочу что бы получилось вот так:
group_id | donor_posts_count
62728829 | 24
12312444 | 77
12312312 | 23
Вариант 1(предпочтительней):
SELECT
g.`group_id`,
COUNT(p.`group_id`) donor_posts_count
FROM
`groups` g
LEFT JOIN `donor_posts` p on p.`group_id`= g.`group_id`
GROUP BY g.`group_id`
Вариант 2(эксперементов ради, может тормозить):
SELECT
g.`group_id`,
(
SELECT
COUNT(*)
FROM
`donor_posts` p
WHERE
g.`group_id` = p.`group_id`
) donor_posts_count
FROM
`groups` g
Спасибо @Mike за дополнение =)
PS. В связи с выясненым в комментариях:
SELECT
g.`group_id`,
COUNT(p.`group_id`) donor_posts_count
FROM
`groups` g
LEFT JOIN `posts` p
on p.`group_id`= g.`group_id`
and UNIX_TIMESTAMP(CURRENT_DATE()) < p.time
GROUP BY g.`group_id`
ORDER BY g.`group_id`
Виртуальный выделенный сервер (VDS) становится отличным выбором
В общем, при написании своего движка, столкнулся с проблемой, заключается она в том, что написав такой простенький код:
У меня такая проблема получиласьЕсть простенький скрипт который анализирует некие данные стороннего сайта и как только там они поменялись...