2013-10-21 1 views
1

수와 비율로 MySQL 쿼리를 주문하는 방법에 문제가 있습니다. 수와 비율로 MySQL 쿼리를 주문하는 방법

는 내가 나는 상단을 보여 PHP에로 MYSQL_ASSOC를 사용하려면이 SQL을 걸려

CREATE TABLE `kills` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `killer` varchar(20) NOT NULL COMMENT 'The player who scored the kill', 
    `killed` varchar(20) NOT NULL COMMENT 'The player who was killed', 
    PRIMARY KEY (`id`), 
    KEY `killer` (`killer`,`killed`) 
) ENGINE=InnoDB AUTO_INCREMENT=680633 DEFAULT CHARSET=utf8 COMMENT='PVP Log'; 

-- ---------------------------- 
-- Records of kills 
-- ---------------------------- 
INSERT INTO `kills` VALUES ('1', 'Player1', 'Player2'); 
INSERT INTO `kills` VALUES ('2', 'Player1', 'Player3'); 
INSERT INTO `kills` VALUES ('3', 'Player2', 'Player3'); 
INSERT INTO `kills` VALUES ('4', 'Player2', 'Player1'); 
INSERT INTO `kills` VALUES ('5', 'Player1', 'Player2'); 
INSERT INTO `kills` VALUES ('6', 'Player3', 'Player3'); 
INSERT INTO `kills` VALUES ('7', 'Player2', 'Player3'); 
INSERT INTO `kills` VALUES ('8', 'Player3', 'Player1'); 

을 사용하고있는 데이터베이스 구조 나는 현재

$getKillers = mysql_query("SELECT `killer`, `killed`, count(`killer`), count(`killed`) FROM `kills` GROUP BY `killer` ORDER BY count(`killer`)/count(`killed`) DESC LIMIT {$limit}"); 

을 사용하고 코드입니다 KDR (Kill death ratio)가 죽은 사람보다 살인자 인 PVP. 이것은 그들이 살해 된 시간 동안 누군가를 죽인 횟수입니다.

도움 주셔서 감사합니다.

SELECT * , (SELECT COUNT(1) 
      FROM kills b 
      WHERE nested.killer = b.killed 
      ) AS killed_cnt 
FROM ( 
    SELECT `killer` , COUNT( `killer`) AS kill_cnt 
    FROM `kills` a 
    GROUP BY `killer` 
) nested 
ORDER BY kill_cnt/killed_cnt DESC 
LIMIT 10 
+0

그래서 출력이 대신 무엇 : – geomagas

+0

PVP는 플레이어 대 플레이어를 의미합니까? –

+0

이것이 원하는지 여부를 확인하려면 [SQLFiddle] (http://sqlfiddle.com/#!2/e5ca1/4)을 KDR 용으로 확인하십시오. –

답변

1

는이 쿼리

?
+0

죄송합니다. 귀하의 질의에 따라 웹 페이지에 "내부 서버 오류 500" – JayNZ

+0

이 표시됩니다. phpmyadmin에서 확인했습니다. "내부 서버 오류 500"이 있으면 모든 것이 잘 작동하고 PHP 오류 로그를 확인하고 PHP 파일 구문을 확인하십시오. (PHP -l your_file.php) – ziollek