Здравствуйте, попрошу еще помощи по созданию запроса.
О задаче: в базе храним историю шахматных игр между пользователем и компьютером.
Вот так выглядит исходная таблица:
CREATE TABLE IF NOT EXISTS `chess_historyui` (
`userId` int(11) NOT NULL, /*id пользователя*/
`numberSave` int(11) NOT NULL AUTO_INCREMENT, /*номер сохранения*/
`historyArray` longtext NOT NULL, /*рудимент, уже не используется*/
`timeUser` int(10) NOT NULL, /*время пользователя*/
`timeUI` int(10) NOT NULL, /*время компьютера*/
`numberMove` int(11) NOT NULL, /*номер хода*/
`autoSave` tinyint(1) NOT NULL, /*флаг автосохранения*/
`timeSave` datetime NOT NULL, /*время последнего сохранения*/
`resultGame` int(11) NOT NULL, /*результат игры*/
`timeStart` datetime NOT NULL, /*время начала игры*/
`difficulty` tinyint(1) NOT NULL, /*сложность*/
`isWhite` tinyint(1) NOT NULL, /*флаг цвета фигур пользователя*/
PRIMARY KEY (`numberSave`),
KEY `userId` (`userId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=72360 ;
К ней относятся таблицы:
user_activity (в ней храним записи об активности пользователей каждую сессию):
к нашей задаче относятся только записи с gameVariationId=3
CREATE TABLE IF NOT EXISTS `user_activity` (
`userId` int(11) NOT NULL,
`sessionId` varchar(255) NOT NULL,
`gameVariationId` int(11) NOT NULL,
`lastBeacon` int(11) NOT NULL,
`lastActivity` int(11) NOT NULL,
PRIMARY KEY (`userId`,`gameVariationId`,`sessionId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
В таблице kosynka_users храним собственно пользователей.
Из нее нам нужны только поля:
username — имя пользователя
isGuest — флаг гостя (если = 1, то это незарегистрированный пользователь)
Необходимо построить запрос, который будет выдавать таблицу со следующими полями:
userId — id пользователя,
winGame — количество выигранных игр (resultGame = 3),
drawGame — количество игр в ничью (resultGame = 2 OR =4 OR =5 OR =6),
loseGame — количество проигранных игр (resultGame = 2 OR =4 OR =5 OR =6),
startGame — количество незаконченных игры (resultGame = 0),
allGame — количество всех игр (resultGame NOT IS NULL),
online — текущий статус пользователя,
onlineActive — активность пользователя,
countNewWinGame — количество новых выигранных игр(новая — сыгранная в последние 24 часа),
countNewDrawGame — количество новых игр в ничью,
countNewAllGame — количество всех новых игр,
rate — позиция в рейтинге, в котором присутствуют все пользователи,
rate1 — позиция в рейтинге, в котором присутствуют только зарегистрированные пользователи,
rate2 — позиция в рейтинге, в котором присутствуют только гости,
username — имя,
isGuest — флаг гостя,
sumTimeGame — суммарное время решения,
appearanceTS — дата регистрации (из
Имеем: