데이터베이스에 3 개의 테이블이 있고 하나의 테이블에서 모든 행을 선택하고 열 두 테이블의 합계와 함께 조인 한 다음 그 합계로 주문하는 쿼리를 수행해야합니다 . 테이블은 게임을위한 것입니다. 팀 테이블, 사용자가 유일하고 users.team_id = teams.id 열이있는 팀에 할당 된 사용자 테이블 및 마지막으로 각 사람이 하루에 수집하는 항목 인 항목 테이블이 있습니다. 사람은 매일 수집 된 항목 수를 입력 한 다음 합계를 계산합니다. items 테이블은 users.adid = items.user_id로 결합됩니다.MySQL의 다중 테이블 선택 SUM 쿼리
내가 필요한 것은 2015 년 이내에 날짜가있는 팀으로 제한된 모든 팀 목록을 제공 한 다음 여러 팀을 가질 수있는 각 팀에서 수집 한 항목의 합계에 대한 열을 갖도록하는 선택 쿼리입니다 회원. 이것은 모두 최대 항목부터 최소 항목 순으로 정렬됩니다.
예 :
| Team ID | Team Name | Total Items |
-------------------------------------
| 1 | Bravo | 5674 |
| 567 | Charlie | 16 |
등
내가 MySQL을 SUM()하지만를 사용하여 시도 내가 가진 된 문제는 조인이, 나 중첩 된 쿼리에 의해 그룹이 합계를 얻기 위해 필요하다는 것이다 각 팀의 각 사용자 항목 수
테이블 구조 :이 트릭해야
CREATE TABLE `teams` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL DEFAULT '',
`captain_id` varchar(11) NOT NULL DEFAULT '',
`date` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `users` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`team_id` int(11) NOT NULL,
`adid` varchar(12) NOT NULL DEFAULT '',
`email` varchar(100) NOT NULL DEFAULT '',
`first_name` varchar(100) DEFAULT '',
`last_name` varchar(100) DEFAULT '',
PRIMARY KEY (`id`),
UNIQUE KEY `ADID` (`adid`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `items` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`user_id` varchar(11) NOT NULL DEFAULT '0',
`items` int(3) NOT NULL DEFAULT '0',
`date` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
'SUM()'을 사용하여 모든 것을 시도 했습니까? http://www.mysqltutorial.org/mysql-sum/ –
@ Fred-ii- 그렇습니다 저는 합계를 실험 해 왔습니다. 문제는 내가 뭔가를 두 테이블의 합계를 선택해야합니다 그래서 내가 그룹에 의해 조인 또는 문제를 제기 중첩 된 쿼리를해야합니다. – dpegasusm
당신이 시도한 것과 실패한 것을 게시 할 수 있습니다. 다른 사람들은 오류가 발생한 곳을 지적 할 수 있습니다. –