我有一個應用程序,它允許用戶投票,並有兩個表MySQL的投票計算
視頻
|id|uri_code|filename|created_on|deleted|
投票
|id|video_id|ip|created_on|
我希望能夠選擇所有視頻信息,並有每個視頻的總票數,這是可能的一個SQL語句,或者我最好與服務器端代碼做呢?
我有一個應用程序,它允許用戶投票,並有兩個表MySQL的投票計算
視頻
|id|uri_code|filename|created_on|deleted|
投票
|id|video_id|ip|created_on|
我希望能夠選擇所有視頻信息,並有每個視頻的總票數,這是可能的一個SQL語句,或者我最好與服務器端代碼做呢?
這當然是可能的SQL - 這樣的事情是什麼SQL是偉大的!你想「團」的視頻由所有選票的計數,所以GROUP BY
條款正是你追求的:
SELECT Video.*, COUNT(*)
FROM Video JOIN Votes ON Votes.video_id = Video.id
GROUP BY Video.id;
select vi.*, count(vo.id) as votes
from video vi
inner join votes vo on vi.id = vo.video_id
group by vi.id
也許是這樣的:
SELECT
Video.id,
Video.uri_code,
Video.filename,
Video.created_on,
Video.deleted,
(
SELECT
COUNT(*)
FROM
Votes
WHERE
Votes.video_id=Video.id
) AS Total
FROM
Video
嗨,您可以在這裏使用MySQL查詢
1.如果您有獲取視頻只佔總票數沒有任何其他條件,然後
SELECT count(Votes.id) AS total_vote, Video. *
FROM Video
LEFT JOIN Votes ON Video.id = Votes.video_id
WHERE Video.deleted = '1'
GROUP BY Video.id
2.如果你要獲得總票數與例如一些條件刪除的視頻有非刪除視頻刪除值0和值1 0 1的枚舉類型,你必須得到未刪除的視頻投票詳情那麼
SELECT count(Votes.id) AS total_vote, Video. *
FROM Video
LEFT JOIN Votes ON Video.id = Votes.video_id
WHERE Video.deleted = '0'
GROUP BY video.id
ip是這裏的票數嗎? – Milee 2012-04-27 09:57:51