The Difference Between SQL’s JOIN .. ON Clause and the Where Clause
The syntax for joins is unnecessarily complex. The difference in behaviour is determined by the operator used for comparison between the two tables. If there existed modifiers for the operators to be sensitive to nulls, no need for special syntax would be needed.<p>If we define /<op> to make the operator include nulls on the left side and <op>\ to include nulls on the right side, we can do joins of all kinds without the JOIN ON syntax.<p>Example.<p>inner join<p>select * from a,b where a.id=b.id<p>left join<p>select * from a,b where a.id=\b.id<p>right join<p>select * from a,b where a.id/=b.id<p>outer join<p>select * from a,b where a.id/=\b.id