Это запрос, который выполняется без проблем с MySql 5.0.51:
SELECT cc_split.idSplit,
count( voteup.vote),
count( votedown.vote)
FROM cc_split
LEFT JOIN cc_split_usager AS voteup ON voteup.idSplit = cc_split.idSplit
AND voteup.vote >0
LEFT JOIN cc_split_usager AS votedown ON votedown.idSplit = cc_split.idSplit
AND votedown.vote <0
WHERE cc_split.isArchived = false
GROUP BY cc_split.idSplit
LIMIT 0, 30
Проблема в том, что COUNT не отображает то, что я хотел бы иметь. Если вы видите, это берет cc_ split_ usager и должен считать количество голосов, которое является положительным, а с другой стороны, считать количество голосов, которое является отрицательным. Приведенный выше код отображает число повышений 2 и понижения 2, тогда как на самом деле должно быть 2 повышения и 1 снижение. Какой трюк иметь в одном запросе SQL количество upvote и downvote.
Таблицы выглядят так:
cc_split:
-idSplit
-...
cc_split_usager:
-idSplit
-vote (can be +1 or -1)
-...
Любой намек на меня?