我正在研究視頻遊戲庫存網站。這裏是我的數據庫表的簡化版本,一些樣本數據一起:SQL左加入計數
CREATE TABLE `platforms` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(16) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
INSERT INTO `platforms` VALUES(1, 'Nintendo');
INSERT INTO `platforms` VALUES(2, 'Super Nintendo');
INSERT INTO `platforms` VALUES(3, 'Nintendo 64');
--
CREATE TABLE `games` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`platform_id` int(10) unsigned NOT NULL,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
INSERT INTO `games` VALUES(1, 1, 'Super Mario Bros.');
INSERT INTO `games` VALUES(2, 1, 'Super Mario Bros. 2');
INSERT INTO `games` VALUES(3, 2, 'Super Mario World');
INSERT INTO `games` VALUES(4, 2, 'Super Mario Kart');
INSERT INTO `games` VALUES(5, 3, 'Super Mario 64');
INSERT INTO `games` VALUES(6, 3, 'Mario Kart 64');
--
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(64) NOT NULL,
`password` varchar(64) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `users` VALUES(1, 'john_doe', '$2a$10$cQhc4VAXVMEyC1tA.VRoWunpNVi7392adacT/weVBzu6XGI6.Jx/K');
INSERT INTO `users` VALUES(2, 'jane_doe', '$2a$10$Ot2BmlT14hKDxHGIV8jBx.lW76HCWdwuOhNGIYrJO5O7BEtDUWLWu');
--
CREATE TABLE `games_users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`game_id` int(10) unsigned NOT NULL,
`user_id` int(10) unsigned NOT NULL,
`created` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
INSERT INTO `games_users` VALUES(1, 1, 1, '2013-04-12 12:18:09');
INSERT INTO `games_users` VALUES(2, 3, 1, '2013-04-12 12:18:42');
INSERT INTO `games_users` VALUES(3, 4, 1, '2013-04-12 12:19:13');
INSERT INTO `games_users` VALUES(4, 2, 2, '2013-04-12 12:19:32');
正如你所看到的,john_doe即有1級任天堂的遊戲(超級馬里奧兄弟),2個超級任天堂遊戲(超級馬里奧世界和超級馬里奧卡丁車)和0個任天堂64遊戲。 jane_doe有1個任天堂遊戲(超級馬里奧兄弟2),0個超級任天堂遊戲和0個任天堂64遊戲。
我想編寫一個特定於查詢用戶的查詢,列出所有控制檯,並列出用戶對每個控制檯的遊戲數量。
這就是結果會是什麼john_doe即:
platform.id: 1
platform.name: Nintendo
game_count: 1
platform.id: 2
platform.name: Super Nintendo
game_count: 2
platform.id: 3
platform.name: Nintendo 64
game_count: 0
這就是結果會是什麼jane_doe:
platform.id: 1
platform.name: Nintendo
game_count: 1
platform.id: 2
platform.name: Super Nintendo
game_count: 0
platform.id: 3
platform.name: Nintendo 64
game_count: 0
我怎樣才能做到這一點?
你甚至想什麼......? –
@HmxaMughal我不知道從哪裏開始。對不起,我不是很好 – Nick