使用子查询进行Sqlite Update查询

di_*_*t10 6 sql sqlite

我必须使用表"testconsent_id"的id值更新表test_test列,test_groupedconsent,其中patient_idin test_test和patient_idin test_groupedconsent表匹配,并且两个表中的creation_date匹配.我正在使用以下查询但收到错误 - "near "as": syntax error".

查询有什么问题?

Update test_test as Tinner join (select id,patient_id,creation_date from test_groupedconsent) as Aon A.patient_id = T.patient_id and A.creation_date = T.creation_dateset T.testconsent_id = A.id;
Run Code Online (Sandbox Code Playgroud)

CL.*_*CL. 11

您不能直接在UPDATE语句中使用连接.

您必须使用相关子查询来查找所需的值(在子查询中,您可以执行任何操作,但在这种情况下,您甚至不需要连接):

UPDATE test_test
SET testconsent_id = (SELECT id
                      FROM test_groupedconsent
                      WHERE patient_id    = test_test.patient_id
                        AND creation_date = test_test.creation_date);
Run Code Online (Sandbox Code Playgroud)


Chi*_*iya -1

UPDATE TABLE test_test 
SET testconsent_id = 
   (SELECT testconsent_id FROM test_groupedconsent AS A, test_test AS B 
    WHERE A.patient_id = B.patient_id AND A.creation_date = B.A.creation_date)   
Run Code Online (Sandbox Code Playgroud)