Jag kommer att ta upp frågan om huruvida dessa ojämlikheter alltid är Sann. Svaret är "nej", inte i SQL. Under de flesta omständigheter är de likvärdiga. Problemet uppstår med implicit typkonvertering.
I synnerhet om a.id
är ett tal och andra kolumner är strängar, då har du situationen där:
1 = '1' -- true
1 = '1.00' -- true
'1' = '1.00' -- false
Du kan se detta
på denna db<>fiol. Det skulle vara trivialt att ställa in detta med JOIN
s, men eftersom jag inte kommer att skriva kod som har kommatecken i FROM
klausul, jag överlåter den övningen till dig.
I praktiken bör id som används för joins vara av samma typ. Du kan inte ens deklarera en främmande nyckelrelation om de inte är det. Bortsett från den bästa praxis är de två frågorna inte automatiskt likvärdiga.
Obs:Detta skulle vara lika sant om du använde korrekt, explicit, standard JOIN
syntax, som jag starkt uppmuntrar dig att lära dig och använda exklusivt.