Моя схема:
- страна (название страны ** (первичный ключ) **)
- турнир (год, дата), имеющий составной первичный ключ (год,дата)
- команда (ID, год, страна), имеющая составной PK (ID, год, страна)
данные в турниретаблица:
CREATE TABLE `tournament` (
`Year` date NOT NULL,
`Country` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `tournament` (`Year`, `Country`) VALUES
('2015-12-17', 'Canada'),
('2015-12-17', 'USA'),
('2016-12-17', 'Canada'),
('2016-12-17', 'USA'),
('2017-12-17', 'UK'),
('2017-12-17', 'USA'),
('2018-12-17', 'China'),
('2018-12-17', 'USA'),
('2019-12-17', 'Australia'),
('2019-12-17', 'USA');
ALTER TABLE `tournament`
ADD PRIMARY KEY (`Year`,`Country`),
ADD KEY `country_tournament_FK` (`Country`);
ALTER TABLE `tournament`
ADD CONSTRAINT `country_tournament_FK` FOREIGN KEY (`Country`) REFERENCES `country` (`Name`);
COMMIT;
Данные в таблице команды:
CREATE TABLE `team` (
`Year` date NOT NULL,
`ID` int(50) NOT NULL,
`Country` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `team` (`Year`, `ID`, `Country`) VALUES
('2015-12-17', 6, 'Australia'),
('2016-12-17', 2, 'Canada'),
('2019-12-17', 1, 'China'),
('2016-12-17', 1, 'UK'),
('2017-12-17', 2, 'UK'),
('2015-12-17', 5, 'USA'),
('2016-12-17', 5, 'USA'),
('2017-12-17', 5, 'USA'),
('2018-12-17', 5, 'USA'),
('2019-12-17', 5, 'USA');
ALTER TABLE `team`
ADD PRIMARY KEY (`Year`,`ID`),
ADD KEY `team_country_fk` (`Country`);
ALTER TABLE `team`
ADD CONSTRAINT `team_country_fk` FOREIGN KEY (`Country`) REFERENCES `country` (`Name`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `team_tournament_fk_final` FOREIGN KEY (`Year`) REFERENCES `tournament` (`Year`) ON DELETE CASCADE ON UPDATE CASCADE;
COMMIT;
Я хочу выбрать те команды, которые играли во всех турнирах (имеется в виду во всехс 2015 по 2019 годы)?Застряв в этом запросе, я студент, который ищет решение для этого запроса, поэтому, пожалуйста, дайте мне знать, возможно ли это или нет какая-либо хорошая подсказка?