Natural join in SQL Server

No, and thank the lucky stars

I can’t believe that you’d want the engine to guess the JOIN for you

Related links:

Edit, to explain why

  • The JOIN (whether USING or ON) is clear and explicit
  • I should be able to name my columns for the entity stored in the table, without worrying about what a column is called in another table, without NATURAL JOIN side effects

Quoting Bill Karwin in this excellent answer:

I never use NATURAL JOIN because I don’t like the possibility that the
join could do something I don’t intend just because some column name
exists in both tables.

Leave a Comment