mark: 寫了一個複雜的sql


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下,稍後做解釋

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章