我有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
文件,请访问我的数据库file。因此,在运行此查询后,我获得了36行数据。
所以,我的问题是为什么它返回36行,甚至数据库中存在22行数据。
答案 0 :(得分:2)
您加入的表各有22行。您在其上运行的join
查询将有22^3
行,其中36行最终符合查询条件。
结果没有错。
答案 1 :(得分: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