2013-08-31 55 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行最終滿足您的查詢條件。

結果沒有問題。