私はすべてを選択できるようにしたいと思い、ユーザーが二つのテーブル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
あなたがする必要がある1.Ifこんにちはあなたがここに
をmysqlのクエリを使用することができます他の条件あなたが削除例えば、いくつかの条件付き動画の合計票を取得する必要があります2.Ifは、その後
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
せずにビデオのための唯一の合計票を取得し、削除値の0と1以外の削除動画について値0と1を持っています列挙型のあなたは削除されていないビデオ投票を取得する必要があります詳細then
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