Ще разгледам въпроса дали тези неравенства са винаги вярно. Отговорът е "не", не в SQL. При повечето обстоятелства те са еквивалентни. Проблемът възниква при неявното преобразуване на типа.
По-специално, ако a.id
е число, а другите колони са низове, тогава имате ситуацията, в която:
1 = '1' -- true
1 = '1.00' -- true
'1' = '1.00' -- false
Можете да видите това
на тази db<>цигулка. Би било тривиално да настроите това чрез JOIN
s, но тъй като няма да пиша код, който има запетаи в FROM
клауза, оставям това упражнение на вас.
На практика идентификаторът, използван за обединения, трябва да бъде от един и същи тип. Не можете дори да декларирате връзка с външен ключ, ако не са. Като изключим тази най-добра практика, двете заявки не са автоматично еквивалентни.
Забележка:Това би било също толкова вярно, ако сте използвали правилно, изрично, стандартно JOIN
синтаксис, който силно, силно ви препоръчвам да научите и използвате изключително.