你好,我在谷歌appengine做一個非常小的應用程序,我使用python。 我的問題是,我有兩個表使用de db.model(「客戶端」和「請求」)。表「客戶」已經得到了電子郵件和名稱字段,而表「請求」獲得了電子郵件和問題字段。如果電子郵件在兩個表中相同,我想要爲每個請求返回電子郵件,問題和客戶端名稱。任何人都可以幫忙嗎?GQL與兩張表
Q
GQL與兩張表
0
A
回答
3
應用程序引擎數據存儲不支持連接,所以您將無法使用GQL解決此問題。您可以使用兩個獲取,一個用於客戶端,另一個用於請求,或者可以使用ReferenceProperty在兩個實體之間建立關係。
如果您需要建立一對多關係模型,可以使用引用屬性來完成。對於你來說,這將是這個樣子:
class Client(db.Model):
email = db.UserProperty()
name = db.StringProperty()
class Request(db.Model):
client = db.ReferencePrpoerty(Client, collection_name='requests')
issue = db.StringProperty()
具有與之相關聯的請求的任何客戶端實體將自動獲得一個屬性叫做請求這是一個查詢對象,將返回都要求實體一個客戶端字段設置爲您正在處理的特定客戶端實體。
您可能還想確保創建Request實體的代碼將每個新實體設置爲將特定用戶的Client實體作爲其祖先。將這些關聯的項目保存在同一個實體組中可能對性能原因和事務有所幫助。使用
0
這款車型:
class Client(db.Model):
email = db.StringProperty()
name = db.StringProperty()
class Request(db.Model):
client = db.ReferenceProperty(Client, collection_name='requests')
issue = db.StringProperty()
有了這個代碼可以查詢數據
from modelos import Client,Request
ctes=Client.all().filter("email =","[email protected]")
for ct in ctes:
allRequest4ThisUser=Request.all().filter("client =",ct)
for req in allRequest4ThisUser:
print req.issue
相關問題
- 1. Linq與兩張表
- 2. 與查詢表連接兩張表
- 3. Monotouch.Dialog兩張表
- 4. GQL查詢與鍵
- 5. 兩張表,兩個關係
- 6. 連接兩張表
- 7. 加入兩張表
- 8. 插入兩張表
- 9. 觸發兩張表
- 10. 組合兩張表
- 11. 加入兩張表?
- 12. 訂購兩張表
- 13. 更新兩張表?
- 14. 加入兩張表
- 15. 加入 - 兩張表
- 16. 加入兩張表
- 17. 加入兩張表
- 18. 將兩張工作表上的三列與兩張紙上的行相匹配複製到一張新紙上
- 19. Mysql加入兩張表
- 20. PHP MySQL加入兩張表
- 21. SQL加入兩張表
- 22. Laravel:兩張表的記錄
- 23. vb.net bindingSource導航兩張表
- 24. Grails - findAll加入兩張表
- 25. 兩張表幾乎相同
- 26. 相互參照兩張表
- 27. MVC 4 - 使用兩張表
- 28. Django:鏈接兩張表
- 29. 查詢加入兩張表
- 30. MySQL內連接兩張表
你好。謝謝。客戶端使用Gmail電子郵件帳戶登錄應用程序。一個客戶可以做很多請求。作爲管理員,我希望看到一個列表,其中包含來自所有客戶端的所有請求,其中包含來自表客戶端的表請求和客戶端名稱的所有客戶端請求... – 2010-01-06 20:15:18
谷歌說: obj1,具有ref_property可以有(許多)obj2這是引用的obj) – 2010-06-19 21:04:40