В Django raw запрос выбирает всех моих пользователей дважды
У меня есть необработанный запрос в моем представлении:
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
Я пытаюсь получить данные из базы данных, но каждый раз результаты дублируются. Он выбирает моих пользователей два раза, как на картинке ниже, и я не могу понять, почему.
потому что вам не хватает условия присоединения:
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
Он выбирает моих пользователей два раза, как на картинке ниже, и я не могу понять, почему.
Потому что вы делаете INNER JOIN
с stressz_szervezetikultura
, но вы никогда не указываете, как они должны быть соединены. Таким образом, каждый 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
.