У меня есть 2 таблицы PLAYER и спички
CREATE TABLE PLAYER
(
id int PRIMARY KEY,
name varchar(255),
salary int
);
INSERT INTO PLAYER values(1,'MOHIT',1000);
INSERT INTO PLAYER values(2,'MNOP',2000);
INSERT INTO PLAYER values(3,'ABC',100);
INSERT INTO PLAYER values(4,'XYZ',10);
CREATE TABLE MATCHES
(
id int,
player_id int,
scores int
);
INSERT INTO MATCHES values(1,1,100);
INSERT INTO MATCHES values(2,2,52);
INSERT INTO MATCHES values(3,3,10);
INSERT INTO MATCHES values(4,1,200);
INSERT INTO MATCHES values(5,1,300);
Может кто-нибудь сказать мне MYSQL-запрос, чтобы узнать количество совпадений, сыгранных MOHIT, чтобы выиграть двойной век (200 запусков).
Я использовал приведенный ниже запрос, но выдает ошибку SQL.
QUERY: -
SELECT FIND_IN_SET(Select m.id from MATCHES m
JOIN PLAYER p
on p.id=m.player_id
WHERE p.name='MOHIT'
AND m.scores>=200
ORDER BY m.scores limit 1,(SELECT GROUP_CONCAT(
SELECT m.id from MATCHES m
JOIN PLAYER p
on p.id=m.player_id
WHERE p.name='MOHIT'
))) AS RANK;
В этом запросе я пытаюсь найти первый match_id, для которого MOHIT забил двойной век, а затем найти RANK этого match_id среди всех матчей, которые он сыграл.
Ожидаемый результат должен быть 2, так как MOHIT сыграл 2 игры, чтобы набрать 200 или более 200 пробежек.
Любая помощь будет высоко оценена.