Já to teda na konec upravil takhle,a výsledek máme stejný
SELECT rezervace.id_z,z.jmeno_z FROM rezervace
LEFT JOIN lod ON lod.id_l=rezervace.id_l INNER JOIN zakaznik as z ON rezervace.id_z = z.id_z
GROUP BY rezervace.id_z, barva,z.jmeno_z
HAVING barva='zelená' AND COUNT(*)=(SELECT COUNT(*) FROM lod WHERE barva='zelená')
Dík.. Aspoň, že mám nějaký řešení. Dostal jsem teda info ze zhora že to mám dělat přes EXISTS někde ale fakt nevim jak to bylo myšlený.. :(