As far as I could find out many DBMSs (e.g. mysql, postgres, mssql) use fk and pk combinations only to constrain changes to data, but they are rarely natively used to automatically select columns to join (like natural join does with names). Why is that? If you've already defined a relationship between 2 tables with a pk/fk, why can't the database figure out that if I join those tables I want to join them on the pk/fk columns?
EDIT: to clarify this a bit:
suppose I have a table1 and a table2. table1 one has a foreign key on column a, which references to the primary key on table2, the column b. Now if I join these tables, I'll have to do something like this:
SELECT * FROM table1
JOIN table2 ON table1.a = table2.b
However, I already defined using my keys that table1.a references to table2.b, so it seems to me that it shouldn't be to hard to make a DBMS system automatically use table1.a and table2.b as the join columns, such that one can simply use:
SELECT * FROM table1
AUTO JOIN table2
However, many DBMS don't seem to implement something like this.

JOIN table2 ON col_namewherecol_nameis a column name in both tables. But I've never used it. – Paul Tomblin Mar 16 '12 at 0:52JOIN table2 USING (col_name), and is very handy if you use that naming scheme. – Izkata Mar 16 '12 at 3:09