【问题标题】:How can I transtlate this SQL to a Django database request?如何将此 SQL 转换为 Django 数据库请求?
【发布时间】:2019-07-12 22:35:06
【问题描述】:
select * from first_table as ft, second_table as st where ft.user_id = st.user_id

上面的 sql 有两个表,它们具有名为“user_id”的同一列 - 我想获得连接两个表的结果,但不确定如何将我知道的 sql 转换为 Django 可以识别的内容。

编辑:(更多信息)有一个用户表,其 id 作为外键存储在 first_table 和 second_table 中作为 user_id。我想根据 user_id 加入 first_table 和 second_table 而不必查询 users 表。

【问题讨论】:

  • 今日提示:切换到现代、明确的JOIN 语法。更容易编写(没有错误),更容易阅读(和维护),并且在需要时更容易转换为外连接。
  • 谢谢,我会考虑使用 JOIN 语法。关于如何转换我在上面尝试做的但以 Django 可以理解的格式的任何想法?
  • 如果没有看到你的模型,这是不可能回答的。您的 ForeignKeys 是如何定义的?
  • 有一个users表,其id作为外键存储在first_table和second_table中都是user_id。我想根据 user_id 加入 first_table 和 second_table 而不必查询 users 表。

标签: python sql django


【解决方案1】:

如果您希望 first_table 行在 second_table 中具有相同的 user_id(连接)

sec=SecondTable.objects.all() queryset = FirstTable.objects.filter(user_id__in=psobjs.values('sec'))

现在如果您想要 FirstTable 和 SecondTable 的数据,您可能需要重新考虑您的模型

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    • 2012-03-08
    • 2017-10-31
    • 2016-04-12
    • 2020-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多