Ваш запрос производит 3 строки, как и ожидалось
DROP TAble if exists tbl_main,tbl_info;
create table tbl_main(id int, number int);
insert into tbl_main values
(5 , 98236),
(6 , 85528),
(7 , 98236),
(8 , 98669);
create table tbl_info(
id int, main_id int,did int,epochtime varchar(10), firstname varchar(20), lastname varchar(20), operationstatus int);
insert into tbl_info values
(1 , 6 , 204, 1538384794 , 'rajata' , 'patile' , 1),
(2 , 5 , 204, 1535185544 , 'john' , 'paulo' , 0),
(3 , 7 , 204, 1536667819 , 'jenny' , 'patrick' , 0),
(4 , 6 , 204, 1538384821 , 'koma' , 'mahaj' , 1);
SELECT *
FROM `tbl_main` `m`
JOIN `tbl_info` `i` ON `i`.`main_id` = `m`.`id`
WHERE ((`i`.`operationstatus` = '0'AND `i`.`epochtime` > '0')OR (`i`.`operationstatus` = '1' AND `i`.epochtime = (SELECT MAX(epochtime) FROM tbl_info)))
AND `did` = '204'
GROUP BY `m`.`id`
ORDER BY `i`.`epochtime` DESC ;
+------+--------+------+---------+------+------------+-----------+----------+-----------------+
| id | number | id | main_id | did | epochtime | firstname | lastname | operationstatus |
+------+--------+------+---------+------+------------+-----------+----------+-----------------+
| 6 | 85528 | 4 | 6 | 204 | 1538384821 | koma | mahaj | 1 |
| 7 | 98236 | 3 | 7 | 204 | 1536667819 | jenny | patrick | 0 |
| 5 | 98236 | 2 | 5 | 204 | 1535185544 | john | paulo | 0 |
+------+--------+------+---------+------+------------+-----------+----------+-----------------+
3 rows in set (0.00 sec)
А вот dbfiddle, который также производит 3 строки https://www.db -fiddle.com / f / 9N9A25zfpki8QqyRecduem / 0