【问题标题】:In Django raw query selects all my user twice在 Django 原始查询中选择我的所有用户两次
【发布时间】:2021-08-06 14:30:50
【问题描述】:

我有一个原始查询:

SELECT stressz_profile.id, projekt_id, user_name_id, 
szerv01b AS szervkult01a 
FROM stressz_szervezetikultura 
INNER JOIN stressz_profile 
WHERE stressz_profile.projekt_id=1

我尝试从数据库中获取数据,但每次都会重复结果。它选择了我的用户两次,如下图所示,我不知道为什么。

【问题讨论】:

  • 表示你的v有两行,一行user_name_id=7,一行user_name_id=1。由于您不执行任何JOIN(带有条件),因此它会将stressz_profilestressz_szervezetikultura 中的项目数“相乘”。

标签: python sql django


【解决方案1】:

它选择了我的用户两次,如下图所示,我不知道为什么。

因为您使用stressz_szervezetikultura 创建了一个INNER JOIN,但您从未指定应该如何连接它们。因此,它将显示每个stressz_profile,其中stressz_profile.project_id=1 的次数与stressz_szerverzetikultura 中的项目相同。

因此您缺少ON 子句:

SELECT stressz_profile.id, projekt_id, user_name_id, 
szerv01b AS szervkult01a 
FROM stressz_szervezetikultura
INNER JOIN stressz_profile ON …
WHERE stressz_profile.projekt_id=1

因此您需要填写连接条件( 部分)。这可能是关于user_name_id 的条件。

【讨论】:

    【解决方案2】:

    因为您缺少连接条件:

    SELECT stressz_profile.id, projekt_id, user_name_id, 
    szerv01b AS szervkult01a 
    FROM stressz_szervezetikultura  s
    INNER JOIN stressz_profile p
     ON p.?? = s.?? -- the column names you are joining on
    WHERE stressz_profile.projekt_id=1
    

    【讨论】:

      猜你喜欢
      • 2021-10-29
      • 2014-12-13
      • 2018-08-20
      • 1970-01-01
      • 2013-04-17
      • 2012-08-12
      • 2015-11-21
      • 2012-03-16
      • 2021-10-09
      相关资源
      最近更新 更多