私はpostgresqlを使用していますが、これはsqlfiddle.comでも確認しました。
私のテーブルと要素は次のとおりです。
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);
Book and Publisher に参加して、Oxford University Press から出版されている本を手に入れたいと思っています。
これは機能します:
select b.name
from Book as b, Publisher as p
where b.pid = p.pid and p.name ='Oxford University Press';
これはしません:
select b.name
from Book as b natural join Publisher as p
where p.name = 'Oxford University Press';
これでもしません:
select *
from Book natural join Publisher;
どうして??