0

我有 22 行数据。但是在运行这个查询之后

select
  AUTHORS_ABSTRACT.ABSTRACTSITEM_ID,
  ABSTRACT_AFFILIATION.AFFILIATION_NUMBER,
  AUTHORS_AFFILIATE.ABSTRACTAUTHOR_ID  

from 
  ABSTRACT_AFFILIATION,
  AUTHORS_AFFILIATE,
  AUTHORS_ABSTRACT

where         ABSTRACT_AFFILIATION._id = AUTHORS_AFFILIATE.ABSTRACTAFFILIATION_ID
and AUTHORS_ABSTRACT.ABSTRACTAUTHOR_ID = AUTHORS_AFFILIATE.ABSTRACTAUTHOR_ID

ORDER BY AUTHORS_ABSTRACT.ABSTRACTSITEM_ID ASC

如果你需要.db这里的文件是我的数据库文件。因此,运行此查询后,我得到 36 行数据。

所以,我的问题是为什么它返回 36 行,甚至数据库中存在 22 行数据。

4

2 回答 2

2

您要加入的表每个有 22 行。并且join您在它们上运行的查询将包含22^3其中 36 行最终满足查询条件的行。

结果没有错。

于 2013-08-31T08:23:21.750 回答
1

试试这个

select     AUTHORS_ABSTRACT.ABSTRACTSITEM_ID,
           ABSTRACT_AFFILIATION.AFFILIATION_NUMBER,
           AUTHORS_AFFILIATE.ABSTRACTAUTHOR_ID
   from AUTHORS_ABSTRACT
   left join ABSTRACT_AFFILIATION on AUTHORS_ABSTRACT.ABSTRACTAUTHOR_ID = ABSTRACT_AFFILIATION._id
   left join AUTHORS_AFFILIATE on ABSTRACT_AFFILIATION._id=AUTHORS_AFFILIATE.ABSTRACTAFFILIATION_ID
   ORDER BY AUTHORS_ABSTRACT.ABSTRACTSITEM_ID ASC
于 2013-08-31T08:20:43.823 回答