Vou abordar a questão de saber se essas desigualdades são sempre verdadeiro. A resposta é "não", não em SQL. Na maioria das circunstâncias, eles são equivalentes. O problema surge com a conversão de tipo implícita.
Em particular, se
a.id
é um número e outras colunas são strings, então você tem a situação em que:1 = '1' -- true
1 = '1.00' -- true
'1' = '1.00' -- false
Você pode ver isto neste db<>fiddle. Seria trivial configurar isso usando
JOIN
s, mas como não vou escrever código que tenha vírgulas no FROM
cláusula, vou deixar esse exercício para você. Na prática, os id's usados para junções devem ser do mesmo tipo. Você não pode nem mesmo declarar um relacionamento de chave estrangeira se eles não forem. Deixando de lado essa prática recomendada, as duas consultas não são automaticamente equivalentes.
Observação:isso também seria verdade se você usasse um padrão adequado, explícito e
JOIN
sintaxe, que eu fortemente encorajo você a aprender e usar exclusivamente.