Jeden způsob, jak to udělat
SELECT IFNULL(MIN(`file`), 'default.webm') `file`
FROM `show`, `schedule`
WHERE `channel` = 1 AND `start_time` <= UNIX_TIMESTAMP()
AND `start_time` > UNIX_TIMESTAMP()-1800 AND `show`.`id` = `schedule`.`file`
ORDER BY `start_time` DESC LIMIT 1
Protože vracíte pouze jeden řádek, můžete použít agregační funkci, v tom případě MIN()
, což zajistí, že dostanete NULL
pokud nejsou vybrány žádné záznamy. Poté IFNULL()
nebo COALESCE()
udělá svou práci.