使用自然连接格式的select子句很困难

时间:2016-05-10 15:21:35

标签: sql join oracle10g

我正在使用Oracle 10g创建以下表格:

  • 预订(bookid( pk ),标题,作者,主题)
  • 借款人(出价( pk ),姓名)
  • 借用(bookid( fk ),出价( fk ),date_of_issue,date_of_return)

现在我想检索在DBMS上借了一本或多本书的借款人的出价和名称。 为此,我写了这个查询:

SELECT bid,name
FROM Book NATURAL JOIN Borrows NATURAL JOIN Borrower
WHERE subject='DBMS';

根据我插入表格的数据,这给出了正确的结果。 但是,当我从SELECT子句中省略'bid'时,会发生意外情况。 如果我只想显示名称,结果会有惊人的不同。 甚至输出关系也显示了一些从未借过任何书籍的成员的名字!!!

我尝试用Oracle内连接格式,ANSI内连接格式和嵌套查询格式编写相同的查询。所有这些都显示正确的输出。 但是为什么地球上只会出现省略单个列的自然连接格式呢?

请不要告诉我使用其他格式来编写此查询。我当然会的。但我需要知道究竟出了什么问题。

0 个答案:

没有答案