Jeg vil køre en update subjects.isActive (skal sættes til '0') på de rækker i subjects, som fremkommer af denne select:
SELECT subjects.id FROM subjects JOIN agentspostalcodes ON subjects.postalcode = agentspostalcodes.postalcode WHERE agentspostalcodes.agentid = 1;
Jeg har forsøgt følgende:
UPDATE subjects SET isactive = 0 WHERE ( SELECT subjects.id FROM subjects JOIN agentspostalcodes ON subjects.postalcode = agentspostalcodes.postalcode WHERE agentspostalcodes.agentid = 1 )
Men får denne fejl: Error Code : 1093 You can't specify target table 'subjects' for update in FROM clause
Jeg har efterfølgende forsøgt at lave et view og bruge dette således:
CREATE VIEW view_subjects AS SELECT subjects.id FROM subjects JOIN agentspostalcodes ON subjects.postalcode = agentspostalcodes.postalcode WHERE agentspostalcodes.agentid = 1;
UPDATE subjects SET isactive = 0 WHERE EXISTS view_subjects;
Men får følgende fejl: Error Code : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'view_subjects' at line 1
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
prøv UPDATE subjects SET subjects.isactive = 0 WHERE subjects.id IN( SELECT subjects.id FROM subjects JOIN agentspostalcodes ON subjects.postalcode = agentspostalcodes.postalcode WHERE agentspostalcodes.agentid = 1 )
>> neoman Jeg får fortsat denne fejl: Error Code : 1093 You can't specify target table 'subjects' for update in FROM clause
Det er som om, at man ikke kan bruge samme tabel i den nestede SELECT, som man har i UPDATE statementet... Men det er blot et gæt ud fra fejlmeddelelsen.
>> w13 Jeg er ikke sikker på, hvad du mener... Prøv at smide et helt eksempel
Hvad med UPDATE subjects SET subjects.isactive = 0 WHERE subjects.id IN( SELECT s1.id FROM subjects AS s1 JOIN agentspostalcodes ON s1.postalcode = agentspostalcodes.postalcode WHERE agentspostalcodes.agentid = 1 )
Et nyt skud: UPDATE subjects SET subjects.isactive = 0 WHERE subjects.postalcode IN (Select postalcode FROM agenpostalcodes WHERE agentspostalcodes.agentid = 1)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.