2013-08-31 39 views
0

我有22行数据。但是,在运行此查询SQLite返回错误的数据

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

您的test.db文件实际上是test.exe,请更改扩展名。 –

+1

@davidstrachan nope,它只是'Test'。没有更多,没有更多。 –

回答

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 
+0

谢谢。如果我想AUTHORS_ABSTRACT.ABSTRACTSITEM_ID = 4(身份证号码)。怎么会像查询? – user2579475

+0

在订单前添加where子句:WHERE AUTHORS_ABSTRACT.ABSTRACTSITEM_ID = 4 ORDER BY AUTHORS_ABSTRACT.ABSTRACTSITEM_ID ASC – danisius

+0

它只给出1和2的正确信息。请你帮助我。 – user2579475

2

表要加入各有22行。并且您正在其上运行的join查询将有22^3行,其中36行最终满足您的查询条件。

结果没有问题。