【问题标题】:Django - Create the equivalent of a "cross-join" query with the Django ORMDjango - 使用 Django ORM 创建等效的“交叉连接”查询
【发布时间】:2011-12-15 04:54:59
【问题描述】:

我有两个 Django 模型,它们通过多对多关系相互关联。

我需要列出两个表的叉积。

为了简单起见,假设这两个模型是 Pizza 和 Topping。

我希望查询返回如下内容:

pizza_name    topping
---------------------
all dressed   cheese
all dressed   mushrooms
all dressed   onions
all dressed   peperoni
all dressed   pepper
reddit        cheese
reddit        peperoni
reddit        bacon
reddit        baconbits

数据量会非常大,我绝对需要使用计数和切片,所以我不能简单地迭代模型并在进行过程中处理数据。

知道我应该如何进行吗?

【问题讨论】:

  • 通过cross join你的意思是你想返回返回p*t行,其中p是比萨饼的数量,t是浇头的数量?或者您想返回pizza_topping 中间表中的每个 (pizza, topping) 对?您发布的示例结果表明后者。
  • 阿拉斯代尔所说的。换句话说,您发布的示例不是交叉产品。

标签: django orm join many-to-many django-orm


【解决方案1】:

我最终通过简单地迭代中间表来解决它。

【讨论】:

    猜你喜欢
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多