Budu se zabývat otázkou, zda jsou tyto nerovnosti vždy skutečný. Odpověď je "ne", ne v SQL. Ve většině případů jsou rovnocenné. Problém nastává u implicitní konverze typu.
Zejména pokud a.id
je číslo a ostatní sloupce jsou řetězce, pak máte situaci, kdy:
1 = '1' -- true
1 = '1.00' -- true
'1' = '1.00' -- false
Můžete se podívat toto
na této db<>hudle. Bylo by triviální nastavit to pomocí JOIN
s, ale protože nebudu psát kód, který má čárky v FROM
klauzule, toto cvičení nechám na vás.
V praxi by id použité pro spojení měly být stejného typu. Nemůžete ani deklarovat vztah cizího klíče, pokud tomu tak není. Pomineme-li tento osvědčený postup, tyto dva dotazy nejsou automaticky ekvivalentní.
Poznámka:Totéž by platilo, pokud byste použili správný, explicitní, standardní JOIN
syntaxi, kterou vám důrazně doporučuji, abyste se ji naučili a používali výhradně.