SQL для обновления поля таблицы jira - PullRequest
0 голосов
/ 06 мая 2020
UPDATE cg
SET NEWSTRING = ''
FROM changegroup cg
inner join jiraissue i on cg.issueid = i.id
inner join project p on i.project = p.id
inner join changeitem ci on ci.groupid = cg.id AND ci.FIELD='Access Matrix Table'
inner join app_user au on cg.author = au.user_key
WHERE cg.issueid=(select id from jiraissue where issuenum = 124 and project in (select id from project where pname = 'NTW Customer Incident Management')) 

У меня ошибка отношения cg не существует. Может ли кто-нибудь помочь там, где синтаксически некорректно?

1 Ответ

0 голосов
/ 06 мая 2020

Как описано в руководстве , псевдоним целевой таблицы должен быть указан в части UPDATE, а не FROM.

UPDATE changegroup cg
  SET NEWSTRING = ''
FROM jiraissue i, 
     project p, 
     changeitem ci, 
     app_user au 
WHERE cg.issueid = i.id 
  AND i.project = p.id
  AND ci.groupid = cg.id AND ci.FIELD='Access Matrix Table'
  AND cg.author = au.user_key
  AND cg.issueid = (select id 
                    from jiraissue 
                    where issuenum = 124 
                      and project in (select id 
                                      from project 
                                      where pname = 'NTW Customer Incident Management')) 

Целевая таблица не может быть используется в условии JOIN, поэтому легче переместить все условия соединения в предложение WHERE.

...