我知道核心數據不是一個數據庫,有很多不同之處。這是嗎?核心數據:3表連接?
在數據庫中,我會經常有以下
A - >> B - >> C
「A」 具有其中有許多 「C」
的許多 「B」查詢,「給我全A已c.attr =‘X’是很容易寫的:
select * from a, b, c where a.id = b.aid and b.id = c.bid and c.attr = 'X'
在覈心數據,我想這樣做,但使用謂詞,如:
NSPredicate *predicate =
[NSPredicate predicateWithFormat:@"ANY bs.cs.attr = %@", "X"];
[frequest setEntity:entityA];
[frequest setPredicate:predicate];
這樣做將導致錯誤: 「NSInvalidArgumentException」的,理由是:「多到多按鍵這裏不允許」
我是正確解釋的意思有什麼數據庫調用多的限制表連接?
我搜索了一遍,找不到明確的答案。
我目前的解決方案,這個查詢看起來像:
NSPredicate *predicate =
[NSPredicate predicateWithFormat:@"ANY cs.attr = %@", "X"];
...
NSArray *bs = //execute fetch
for (B *b in bs) {
//add b.a into an array
}
//return array
有沒有更好的辦法?預先感謝您的考慮。
呃,a,b,c連接語法是邪惡的。 – 2012-10-25 17:47:56