Ich werde die Frage ansprechen, ob diese Ungleichheiten immer bestehen WAHR. Die Antwort ist "nein", nicht in SQL. In den meisten Fällen sind sie gleichwertig. Das Problem tritt bei der impliziten Typkonvertierung auf.
Insbesondere wenn a.id
eine Zahl ist und andere Spalten Zeichenfolgen sind, dann haben Sie die Situation, in der:
1 = '1' -- true
1 = '1.00' -- true
'1' = '1.00' -- false
Sie können dies
sehen auf dieser db<>geige. Es wäre trivial, dies mit JOIN
einzurichten s, aber da ich keinen Code schreiben werde, der Kommas im FROM
enthält Klausel, überlasse ich diese Übung Ihnen.
In der Praxis sollten die für Joins verwendeten IDs vom gleichen Typ sein. Sie können nicht einmal eine Fremdschlüsselbeziehung deklarieren, wenn dies nicht der Fall ist. Abgesehen von dieser bewährten Methode sind die beiden Abfragen nicht automatisch gleichwertig.
Hinweis:Dies wäre genauso wahr, wenn Sie den richtigen, expliziten Standard verwenden würden JOIN
Syntax, zu deren Erlernen und ausschließlichen Verwendung ich Sie dringend ermutige.