Search code examples
sqlsql-serverjoin

Natural join in SQL Server


Is there any support for natural joins in recent Microsoft SQL Server editions? Or is there a good alternative for making SQL Server work out the predicates that would have been in the ON clauses based on the referential integrity?


Solution

  • 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.