Topic: error #1093 Update'as i from lentele

Turiu tokia uzklausa, man jos rezultatus reikia paupdatinti su nauja_kaina='0.00'

SELECT 
ROUND(l.likutis,3) as likutis, p.pragma_kodas as kodas, p.id as id, p.title as title, p.kaina as kaina, p.nauja_kaina as nauja_kaina, p.manufacturer as manufacturer
FROM plyteles_db.products AS p
LEFT JOIN (

SELECT SUM( lik.likutis ) AS likutis, lik.kodas AS kodas
FROM plyteles_lik.likuciai lik
GROUP BY kodas
) AS l ON l.kodas = p.pragma_kodas
WHERE p.nauja_kaina != ''
AND p.pragma_kodas != ''
AND p.visible =1
AND (
l.likutis <1
OR l.likutis IS NULL
)

as rasau taip:

UPDATE plyteles_db.products SET nauja_kaina = '0.00' WHERE id IN (
SELECT p.id AS id
FROM plyteles_db.products AS p
LEFT JOIN (

SELECT SUM( lik.likutis ) AS likutis, lik.kodas AS kodas
FROM plyteles_lik.likuciai lik
GROUP BY kodas
) AS l ON l.kodas = p.pragma_kodas
WHERE p.nauja_kaina != ''
AND p.pragma_kodas != ''
AND p.visible =1
AND (
l.likutis <1
OR l.likutis IS NULL
)
)

ir pareina

MySQL atsakymas: ?
#1093 - You can't specify target table 'products' for update in FROM clause

Gal galit kas nors istaisyti mano update'a kad viskas tiktu? :)

2 (edited by skuelas 2011-11-03 12:52:37)

Re: error #1093 Update'as i from lentele

O tu paskaityk is eiles uzklausa ka bandai padaryt ir pamatysi kad nesamone gaunasi.
http://dev.mysql.com/doc/refman/5.0/en/update.html

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

Re: error #1093 Update'as i from lentele

skuelas wrote:

O tu paskaityk is eiles uzklausa ka bandai padaryt ir pamatysi kad nesamone gaunasi.
http://dev.mysql.com/doc/refman/5.0/en/update.html

as suprantu kad visi sustri duoda pasiskaityti dokumentacija, bet as ja zinau ir man mano uzklausa nesikerta su elementaria logika.
Gal gali paaiskinti ka blogai darau ir kaip to isvengti?

Re: error #1093 Update'as i from lentele

sunku buvo pasakyti kad reikejo tarp galutiniu skliaustu aprasyti select'a as tmp?
ar tu ant tiek sustras kad to nesugebejai pats parasyti?
RTFM lengviausia..