阅读:http://code.google.com/appengine/docs/python/datastore/gqlreference.html
我想使用:
:= IN
但我不确定如何让它起作用。 假设以下内容:
class User(db.Model):
name = db.StringProperty()
class UniqueListOfSavedItems(db.Model):
str = db.StringPropery()
datesaved = db.DateTimeProperty()
class UserListOfSavedItems(db.Model):
name = db.ReferenceProperty(User, collection='user')
str = db.ReferenceProperty(UniqueListOfSavedItems, collection='itemlist')
如何查询用户保存的项目列表?显然,我可以执行以下操作:
q = db.Gql("SELECT * FROM UserListOfSavedItems WHERE name :=", user[0].name)
但是这只会给我一个键列表。现在我想把那个列表放到一个查询中,从UniqueListOfSavedItems中获取str字段。我以为我可以这样做:
q2 = db.Gql("SELECT * FROM UniqueListOfSavedItems WHERE := str in q")
但是有些不对劲...你有什么想法吗?是这个问题吗(我现在在上班,不能测试):
q2 = db.Gql("SELECT * FROM UniqueListOfSavedItems __key__ := str in q)
顺便说一句,这是一个非常棘手的问题,因为我真正关心的只是“IN”运算符。