2016-02-28 76 views
4

我有這樣的關係:NSPredicate使用子查詢

player <—>> games <<—> quiz 

enter image description here

,並希望得到所有測驗不是在玩家的遊戲,像

SELECT * 
FROM ZQUIZ 
WHERE Z_PK NOT IN (SELECT ZQUIZ 
        FROM ZGAME 
        WHERE ZPLAYER == 1) 

有人能幫忙嗎?

+0

進一步參考http://funwithobjc.tumblr.com/post/2726166818/what-the-heck-is-subquery – Mindeater

+0

唉,爲什麼我們不能只是寫正規SQL? – Dan

回答

3

這可以通過SUBQUERY子句完成。如果myPlayer是玩家的問題:

let predicate = NSPredicate(format:"SUBQUERY(games,$g, $g.player == %@)[email protected] == 0", myPlayer) 
+1

完美,你讓我的一天! –

+0

這個例子中的'$ g'是什麼? – Dan

+1

@丹$ g只是代表遊戲關係的每個元素的佔位符。您可以使用任何名稱:$ a,$ z,無論如何。 – pbasdf