2016-02-28 48 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