나는 사용자가 투표하고 두 테이블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
절은 필요하시면 정확히 : 당신이 가지고 설치 1.
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의 쿼리
을 사용할 수 있습니다 다른 조건 당신은 삭제 예를 들어 어떤 조건 비디오에 대한 총 투표를 얻어야한다 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을 가지고 열거 형의 당신은 삭제되지 않은 비디오 투표를 가져와야한다. 세부 사항 다음
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