The values don't need to be unique, and you shouldn't have "dropped" tupples.
A natural join is for lazy, trusting and bad programmers:
- lazy: can't be bothered typing in the join conditions
- trusting: hopes that when same-named columns are added to both tables that their queries don't suddenly break
- bad: the essence of good programming is clarity. Using a natural join obscures how the joins are being made, so the reader of your query must check the table definitions to figure out what's going on
IMHO using natural joins is a terrible idea and they should never be used. You gain virtually nothing (you save typing maybe a dozen chars) and lose a lot.
EDIT:
natural joins are like any other join in terms of inner/outer: the default is inner join, but you can soecify left or right joins too, for example in mysql:
select ...
from t1
natural left join t2