0
我的數據庫有兩個表ZDESTINATION和ZPOSTIT。有多對一的關係,一個PostIt
可以有很多Destination
s。我想獲得所有的Destination
行(其中有9行),我正在使用NSFetchRequest
。但只有3行正在返回。我沒有指定謂詞。我有一個排序順序和部分鍵名路徑爲@"postIt.creationTime"
。我檢查了數據庫和所有postIts
有一個創建時間,所有目的地有一個有效postit
關係。核心數據與sqlite返回只有3行
這是非常簡化的查詢。
SELECT t0.Z_ENT, t0.Z_PK, t0.ZPOSTIT
FROM ZDESTINATION t0
LEFT OUTER JOIN ZPOSTIT t1 ON t0.ZPOSTIT = t1.Z_PK
WHERE t0.Z_PK IN (?,?,?)
ORDER BY t1.ZCREATIONTIME DESC
LIMIT 20
目的地(主鍵,PostIt)
"1" "3"
"2" "2"
"3" "4"
"4" "5"
"5" "5"
"6" "5"
"7" "7"
"8" "7"
"9" "7"
POSTIT主鍵,創建時間
"1" "442134908.015139"
"2" "442134921.469915"
"3" "442134941.083225"
"4" "442135028.839804"
"5" "442212344.121323"
"6" "442212468.053344"
"7" "442214203.670005"
注意由該找取請求自動生成LEFT外連接。
你有任何想法或提示如何調試?
這是核心數據NSFetchRequest
。
NSFetchRequest *fetchRequest = [ [ NSFetchRequest alloc ] init ];
NSEntityDescription *entity = [ NSEntityDescription entityForName:@"Destination"
inManagedObjectContext:studyStageAssets.postItMoContext ];
[ fetchRequest setEntity:entity ];
// Create the sort descriptors array.
NSSortDescriptor *creationTimeDescriptor = [ [ NSSortDescriptor alloc ]
initWithKey:@"postIt.creationTime"
ascending:NO ];
NSArray *sortDescriptors = @[ creationTimeDescriptor ];
[ fetchRequest setSortDescriptors:sortDescriptors ];
// Create and initialize the fetch results controller.
_fetchedResultsController = [ [ NSFetchedResultsController alloc ]
initWithFetchRequest:fetchRequest
managedObjectContext:studyStageAssets.postItMoContext
sectionNameKeyPath:@"postIt.creationTime"
cacheName:@"TrailIt" ];
_fetchedResultsController.delegate = self;
緊隨其後的是performFetch
。
WHERE子句從哪裏來? –
你能否提供獲取請求? –
添加您使用的核心數據代碼,因爲這不是您實際嘗試的內容的有用描述。 –