And what if there is more than one way of joining two tables, or a table to itself?
A foreign key is effectively a reference to another column,
but to de-reference it you have to tell the database which table and column it's a reference to.
Every time. Even when this information is already specified in a foreign key constraint.
The author is talking about (not) being able to specify the "from" table and column without having specify the "to" table and column (i.e. tell the database how to de-reference it) on each query.
A natural join removes the need to specify the columns, but still requires specifying both tables. So
besides requiring a de facto single namespace for columns across tables and generally seeming like a footgun,
it doesn't achieve the same thing.
A foreign key is effectively a reference to another column, but to de-reference it you have to tell the database which table and column it's a reference to. Every time. Even when this information is already specified in a foreign key constraint.
The author is talking about (not) being able to specify the "from" table and column without having specify the "to" table and column (i.e. tell the database how to de-reference it) on each query. A natural join removes the need to specify the columns, but still requires specifying both tables. So besides requiring a de facto single namespace for columns across tables and generally seeming like a footgun, it doesn't achieve the same thing.