Просмотр поста

.
kantry
Hey guys! Finally I'm gonna change status!?

Hat-Trick, хрен знает я скоро футмен изучу
вообще бы 3 таблицы сделал, а потом как хочешь можно данными манипулировать

dump (+/-)

CREATE TABLE `games` (
  `id_game` int(11) NOT NULL AUTO_INCREMENT,
  `date_game` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Время матча',
  PRIMARY KEY (`id_game`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COMMENT 'Все игры';
-- дамп ВСЕХ игр
INSERT INTO `games` VALUES (1,'2021-02-28 16:00:00'),(2,'2021-03-01 
16:00:00'),(3,'2021-03-12 16:00:00'),(4,'2021-01-13 
16:00:00'),(5,'2021-03-16 16:00:00'),(6,'2021-03-18 16:00:00');

CREATE TABLE `result` (
  `id_result` int(11) NOT NULL AUTO_INCREMENT,
  `id_team` int(11) NOT NULL,
  `id_game` int(11) NOT NULL,
  `goals` int(11) DEFAULT NULL COMMENT 'Забитых/пропущеных голов за игру',
  PRIMARY KEY (`id_result`),
  KEY `idx_result_id_game` (`id_game`),
  KEY `idx_result_id_team` (`id_team`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COMMENT 'Итоги игр';
-- дамп результатов
INSERT INTO `result` VALUES 
(1,1,1,3),(2,5,1,2),(3,2,2,1),(4,5,2,4),(5,3,3,5),(6,5,3,5),(7,4,4,0),(8,5,4,1),(9,6,5,NULL),(10,7,5,NULL);

CREATE TABLE `teams` (
  `id_team` int(11) NOT NULL AUTO_INCREMENT,
  `name_team` varchar(64) NOT NULL COMMENT 'Названия команд',
  PRIMARY KEY (`id_team`),
  UNIQUE KEY `name_team` (`name_team`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COMMENT 'Список команд';
-- дамп команд
INSERT INTO `teams` VALUES (7,'Ален Делон'),(6,'Атланта Сити'),(2,'Гладиатор 
Сочи'),(1,'Динамо Машина'),(4,'Крылья Депутатов'),(3,'Паровоз 
Абакан'),(5,'Реал Анадырь');


Если достаточно прав в базе, можно вид сделать.Напр.
view (+/-)

CREATE VIEW ViewGames
AS SELECT
    RST.id_team,
TMS.name_team AS 'Хозяева',
    RST.goals AS 'Забито',
    TMS_1.name_team AS 'Гости',
    RST_1.goals AS 'Пропущено',
    (RST.goals - RST_1.goals) AS 'Очков',
    GMS.date_game AS 'Время матча'
FROM result RST
JOIN games GMS ON RST.id_game = GMS.id_game
JOIN result RST_1 ON RST_1.id_game = GMS.id_game
JOIN teams TMS_1 ON TMS_1.id_team = RST_1.id_team
JOIN teams TMS ON TMS.id_team = RST.id_team
WHERE RST.id_team <> RST_1.id_team /* если нужны все */
 -- AND NOT ISNULL(RST.goals) /* если нужны сыгранные */
AND ISNULL(RST.goals) /* если нужны НЕ сыгранные */


или как запрос использовать.