我正在使用Oracle 10g创建以下表格:
现在我想检索在DBMS上借了一本或多本书的借款人的出价和名称。 为此,我写了这个查询:
SELECT bid,name
FROM Book NATURAL JOIN Borrows NATURAL JOIN Borrower
WHERE subject='DBMS';
根据我插入表格的数据,这给出了正确的结果。 但是,当我从SELECT子句中省略'bid'时,会发生意外情况。 如果我只想显示名称,结果会有惊人的不同。 甚至输出关系也显示了一些从未借过任何书籍的成员的名字!!!
我尝试用Oracle内连接格式,ANSI内连接格式和嵌套查询格式编写相同的查询。所有这些都显示正确的输出。 但是为什么地球上只会出现省略单个列的自然连接格式呢?
请不要告诉我使用其他格式来编写此查询。我当然会的。但我需要知道究竟出了什么问题。