a) skuste si precitat co pise Vami odkazovany text: "vykonnostny rozdiel".
Já jsem to samozřejmě četl, a na rozdíl od vás až do konce. „Liší se pouze zápis. Smysl a provádění je stejné.“
b) pouzit Oracle syntax, ktora je syntakticky cukor ako agument, znaci, ze ocividne netusite o com pisete.
Ta Oracle syntax je starší, než JOIN ve standardu. Syntaktický cukr je naopak klíčové slovo 
ON ve standardu – v případě 
INNER JOIN se podmínka, která se za 
ON napíše, jenom pomocí 
AND připojí k ostatním podmínkám ve 
WHERE. V případě 
OUTER JOINu je to to samé, akorát se ta podmínka samozřejmě z 
INNER JOIN predikátu musí změnit na 
OUTER JOIN. K tomu 
JOINu se podmínka pomocí 
ON připojuje jenom kvůli přehlednosti, klidně tam můžete dát podmínku, která se spojovaných tabulek nijak netýká, a naopak klidně podmínku pro spojení tabulek můžete dát do 
WHERE.
c) ano, vami uvedene dve SQLka nemaju prakticky rozdiel, ale to sa samozrejme netyka toho na co reagujete.
Samozřejmě se to týká toho, na co reaguju. Ten příkaz po změně porovnání 
NULL hodnoty na 
IS NOT NULL je naprosto správně, oba následující dotazy jsou ekvivalentní a budou mít stejný prováděcí plán:
SELECT z.name, i.zkr
FROM Zam z
  LEFT JOIN Info i
    ON z.id_z=i.id_z
WHERE (i.datum > 1561939200 OR i.datum IS NULL);
SELECT z.name, i.zkr
FROM Zam z
  LEFT JOIN Info i
    ON z.id_z=i.id_z AND i.datum > 1561939200
;