Pages 1
You must login or register to post a reply
Warning: count(): Parameter must be an array or an object that implements Countable in
/home/pasokime/domains/mysql.lt/public_html/forumas/include/parser.php on line
820
- Registered: 2007-01-08
- Posts: 256
Topic: Neveikia užklausa, gal galima kaip nors kitaip?
Užklausa:
DELETE FROM nw_alliance_member WHERE id IN (
SELECT t1.id
FROM nw_alliance_member AS t1
LEFT JOIN nw_login AS t2 ON t2.id = t1.user
WHERE t2.id IS NULL
)
man gražina klaida #1093 - You can't specify target table 'nw_alliance_member' for update in FROM clause
užklausa:
SELECT t1.id
FROM nw_alliance_member AS t1
LEFT JOIN nw_login AS t2 ON t2.id = t1.user
WHERE t2.id IS NULL
gražina reikiamus rezultatus, kuriuos aš turiu ištrinti.
Gal galima kaip nors kitaip perrašyti?
http://bugs.mysql.com/bug.php?id=3327 bet nesugalvoju kai pperrašyti užklausą kitaip
- minde
- Administrator
- Offline
- Registered: 2006-06-14
- Posts: 4,003
Re: Neveikia užklausa, gal galima kaip nors kitaip?
Esmė tokia: negalima toje pačioje užklausoje trinti (DELETE) ir rinkti (SELECT) eilutes iš tos pačios lentelės.
Tavo atveju sprendimas manau yra - reikia trinimo užklausą perrašyti su sujungimu:
DELETE FROM nw_alliance_member
LEFT JOIN nw_login ON nw_alliance_member.user = nw_login.id
WHERE nw_login.id IS NULL
Daugiau info: http://dev.mysql.com/doc/refman/4.1/en/delete.html
- Registered: 2007-01-08
- Posts: 256
Re: Neveikia užklausa, gal galima kaip nors kitaip?
kažkaip akys neužkliuvo už tai kad JOIN galima ir delete sakiniuose naudot.
Pages 1
You must login or register to post a reply