SELECT ftable.pid, ftable.sid, fcnt, mcnt, fcnt + mcnt AS tcnt
FROM (
SELECT main.pid, main.sid, COALESCE( main.cnt + vote_res.cnt, 0 ) AS fcnt
FROM (
SELECT pictures.id AS pid, style.id AS sid, 0 AS cnt
FROM pictures, style
) AS main
LEFT JOIN (
SELECT pid, sid, count( * ) AS cnt
FROM vote, users
WHERE users.id = vote.uid
AND users.gender =0
GROUP BY pid, sid
) AS vote_res ON main.pid = vote_res.pid
AND main.sid = vote_res.sid
) AS ftable, (
SELECT main.pid, main.sid, COALESCE( main.cnt + vote_res.cnt, 0 ) AS mcnt
FROM (
SELECT pictures.id AS pid, style.id AS sid, 0 AS cnt
FROM pictures, style
) AS main
LEFT JOIN (
SELECT pid, sid, count( * ) AS cnt
FROM vote, users
WHERE users.id = vote.uid
AND users.gender =1
GROUP BY pid, sid
) AS vote_res ON main.pid = vote_res.pid
AND main.sid = vote_res.sid
) AS mtable
WHERE ftable.pid = mtable.pid
AND ftable.sid = mtable.sid
先mark下,稍後做解釋