J'utilise postgresql, bien que j'ai confirmé cela dans sqlfiddle.com aussi.
Mes tables et éléments sont :
create table Publisher(pID int PRIMARY KEY, name varchar(255), address varchar(255));
create table Book(ISBN int PRIMARY KEY, name varchar(255), genre varchar(255), price int, copies int, pID int REFERENCES Publisher(pID));
insert into Publisher values(1, 'Oxford University Press', 'Senkosova');
insert into Book values(111, 'Alamut', 'Horror', 50, 100, 1);
Je veux rejoindre naturellement Book and Publisher et obtenir les livres qui sont publiés par Oxford University Press.
Ça marche :
select b.name
from Book as b, Publisher as p
where b.pid = p.pid and p.name ='Oxford University Press';
Ce n'est pas le cas :
select b.name
from Book as b natural join Publisher as p
where p.name = 'Oxford University Press';
Même cela ne le fait pas :
select *
from Book natural join Publisher;
Pourquoi ?