2012-02-26 215 views
0

我有這種模式:Django的原始SQL查詢

class Document(models.Model): 
    data = models.TextField() 
    users = models.ManyToManyField(User) 

你會如何轉換以下查詢上述模型,以原始的SQL?

Document.objects.annotate(num_users=Count(users)) 

我需要,因爲使用MySQL,使得註釋非常緩慢時,有一個錯誤在Django這個切換到原始的SQL。

但我不知道如何處理許多在原始的SQL許多領域..

Document.objects.raw('SELECT ...') 

回答

2

到SQL是簡單地看那個Django的生成SQL翻譯你的Django查詢最簡單的方法:How can I see the raw SQL queries Django is running?

+0

小心!也許他所說的錯誤是django如何將查詢翻譯成mysql語法(儘管我很難相信這個查詢在不同的DBMS如postgre或mysql中被區別對待)。如果@ 9位認爲原始查詢繼續緩慢運行,他應該在這裏添加django拋出的原始sql ... – marianobianchi 2012-06-15 03:04:24