1
의 숫자로 필드 결과를 곱 MySQL은, 내 쿼리는 다음과 같습니다내 데이터베이스에서 컬럼의 다양한 선택하고있어 다른 필드
SELECT st.* , u.username creator, COUNT(DISTINCT se.sentenceid) AS sentences,
COALESCE(SUM(v.vote), 0) score,
GROUP_CONCAT(se.text ORDER BY se.sentenceid SEPARATOR ' ') text
FROM stories st
JOIN sentences se ON st.storyid = se.storyid
LEFT OUTER JOIN votes v ON st.storyid = v.storyid
LEFT OUTER JOIN users u ON st.creatorid = u.userid
GROUP BY st.storyid
LIMIT 30
이 쿼리는 점수를 제외한 모든 작동합니다. 출력 된 점수는 문장의 수에 실제 점수를 곱한 것입니다. 내 votes
표는 다음과 같습니다
+---------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+------------+------+-----+---------+-------+
| userid | int(11) | YES | MUL | NULL | |
| storyid | int(11) | NO | MUL | NULL | |
| vote | tinyint(4) | NO | | NULL | |
+---------+------------+------+-----+---------+-------+
vote
1 또는 하나의 값을 포함 -1.
실제 점수를 받으려면 어떻게 쿼리를 수정해야합니까?
일부 샘플 데이터로 sqlfiddle을 만들 수 있습니까? – xception
@xception - 예, 이제 시작하겠습니다 ... – jeff
@xception - 신경 쓰지 마세요. 끝나기 전에 질문에 답을 얻었습니다. 그래도 다음 SQL 질문에 대해서는 그렇게 할 것입니다. – jeff