CREATE TABLE `like` (
`post_id` INT NOT NULL,
`user_id` INT NOT NULL,
FOREIGN KEY (`post_id`) REFERENCES `posts`(`id`) ON DELETE CASCADE,
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,
PRIMARY KEY (`post_id`, `user_id`),
INDEX ('user_id'),
)
SELECT `t`.`id`, `t`.`master_theme`, `t`.`theme`, IFNULL(`p`.`count`, 0) AS `posts`,
IFNULL(`v`.`count`, 0) AS `videos`, IFNULL(`s`.`count`, 0) AS `subscribers`
FROM `theme` AS `t`
LEFT JOIN (
SELECT `theme_id`, COUNT(*) AS `count`
FROM `post`
WHERE `theme_id` in (88,14,91,23,79,13,21,24,89,17,65,35,97,82,37,38,85,64,56,90,60,99,16,76)
GROUP BY `theme_id`
) AS `p` ON `p`.`theme_id` = `t`.`id`
... Аналогично для других таблиц ...
WHERE `t`.`id` in (88,14,91,23,79,13,21,24,89,17,65,35,97,82,37,38,85,64,56,90,60,99,16,76)