Я знаю, что вы можете объединить несколько таблиц с помощью оператора Join, но есть ли способ объединить эти два запроса в один ?
SELECT Statistics.StatisticID
FROM Statistics
ORDER BY `SubmittedTime` DESC
LIMIT 0, 10
А этот?
SELECT COUNT(Votes.StatisticID)
FROM Votes
WHERE Votes.StatisticID = ?
(пух удален)
В настоящий момент я достиг чего-то, что почти работает.
SELECT Statistics.StatisticID, COUNT(Score.StatisticID) AS Votes
FROM `Statistics`
LEFT JOIN `Votes` AS `Score` ON `Statistics`.`StatisticID` = `Score`.`StatisticID`
ORDER BY `SubmittedTime` DESC
LIMIT 0, 10
Таблица Votes
- это простой StatID, объединяющий UserID. В моем тестовом случае он содержит 3 строки, две с StatID 5 - 1 с StatID 2.
Мой запрос будет работать, если я добавлю предложение WHERE, например WHERE StatisticID = 5
, и верну 2 голоса. Однако, если я удалю предложение WHERE, мне все равно будет возвращена одна строка и 3 голоса.
Можно ли объединить эти запросы или мне придется запускать второй для каждого результата (очевидно, не желательно)?