Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

update sa dugackim where ... nesto ne valja.

[es] :: MySQL :: update sa dugackim where ... nesto ne valja.

[ Pregleda: 2321 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Branko Santo
Tu i tamo

Član broj: 57312
Poruke: 2232
*.dial.InfoSky.Net.

Sajt: cz.linkedin.com/in/branko..


+600 Profil

icon update sa dugackim where ... nesto ne valja.08.03.2006. u 23:17 - pre 220 meseci
Code:
update rezultatitiketa set tiketwon = 1 where tiketID = 46, count(tiketID) = count(won), min(won) = 1;



Imam ovakvu SQL komandu koju unosim u MySQL query browser i on mi prijavljuje da imam eror u sintaksi.

Hteo bih da podesim kolonu tiketwon = 1 na redovima kojima je tiketID = 46 kao i count(tiketID) = count(won) kao i min(won) = 1 (broj utakmica na tiketu jednak zavrsenim utakmicama na tiketu (kolone tiketID i won) kao i da su sve utakmice pogodjene (min(won) = 1))

Ima li pomoci?

Ah da probao sam i da zareze u where zamenim sa "AND" ali mi onda prijavi pogresno koriscenje group funkcije.

[Ovu poruku je menjao long_strider dana 09.03.2006. u 00:18 GMT+1]
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.ADSL.neobee.net.

Sajt: www.novikorisnik.net


+5 Profil

icon Re: update sa dugackim where ... nesto ne valja.09.03.2006. u 00:03 - pre 220 meseci
... kako izgleda tabela rezultatitiketa?
 
Odgovor na temu

Branko Santo
Tu i tamo

Član broj: 57312
Poruke: 2232
*.dial.InfoSky.Net.

Sajt: cz.linkedin.com/in/branko..


+600 Profil

icon Re: update sa dugackim where ... nesto ne valja.09.03.2006. u 07:33 - pre 220 meseci
To je view, a izgleda |tiket| tiketwon| tiketID| won|
 
Odgovor na temu

Ana Komazec
Beograd

Član broj: 76433
Poruke: 22
*.adsl.sezampro.yu.

ICQ: 274954884


Profil

icon Re: update sa dugackim where ... nesto ne valja.10.03.2006. u 00:10 - pre 220 meseci
Problem je sto agregatne funkcije ne mogu stajati u klauzuli Where

Probaj ovako da uradish, mada nisam sigurna da li radi:

Code:
 
Update RezultatiTiketa 
Set tiketwon=1 
Where tiketID=1 
          and won in (Select min(won)  
                           From RezultatiTiketa 
                            Having (min(won)=1 and Count(tiketID)=Count(Won)));


Pozdrav

[Ovu poruku je menjao Ana Komazec dana 10.03.2006. u 01:10 GMT+1]
 
Odgovor na temu

Branko Santo
Tu i tamo

Član broj: 57312
Poruke: 2232
*.dial.InfoSky.Net.

Sajt: cz.linkedin.com/in/branko..


+600 Profil

icon Re: update sa dugackim where ... nesto ne valja.10.03.2006. u 08:35 - pre 220 meseci
Probacu! :)

Hvala! :)
 
Odgovor na temu

Branko Santo
Tu i tamo

Član broj: 57312
Poruke: 2232
*.dial.InfoSky.Net.

Sajt: cz.linkedin.com/in/branko..


+600 Profil

icon Re: update sa dugackim where ... nesto ne valja.10.03.2006. u 09:34 - pre 220 meseci
Ana hvala mnogo, ne radi jos ali mislim da cu uspeti da namestim.

Ne moze da se radi select u subquery tabele koja se updatuje ili kako bi rekli u knjizi


Citat:
Although subqueries can be used to retrieve or aggregate data from other tables for use in statements that modify tables (such as UPDATE, DELETE, INSERT, and REPLACE), MySQL does not allow a table that is being updated in the outer query to be selected from in any subquery of the statement.



:)
Hvala na usmerenju!
 
Odgovor na temu

Ana Komazec
Beograd

Član broj: 76433
Poruke: 22
*.adsl.sezampro.yu.

ICQ: 274954884


Profil

icon Re: update sa dugackim where ... nesto ne valja.10.03.2006. u 13:02 - pre 220 meseci
Evo jos nekih informacija koje ti mozda mogu pomoci:

Citat:
In general, you cannot modify a table and select from the same table in a subquery. For example, this limitation applies to statements of the following forms:

DELETE FROM t WHERE ... (SELECT ... FROM t ...);
UPDATE t ... WHERE col = (SELECT ... FROM t ...);
{INSERT|REPLACE} INTO t (SELECT ... FROM t ...);

Exception: The preceding prohibition does not apply if you are using a subquery for the modified table in the FROM clause. Example:

UPDATE t ... WHERE col = (SELECT (SELECT ... FROM t...) AS _t ...);

Here the prohibition does not apply because a subquery in the FROM clause is materialized as a temporary table, so the relevant rows in t have already been selected by the time the update to t takes place.

[url]http://dev.mysql.com/doc/refman/5.1/en/subquery-restrictions.html[/url]

A sto se tice pogleda (view):

Citat:
Subqueries cannot be used in the FROM clause of a view. This limitation will be lifted in the future.

[url]http://dev.mysql.com/doc/refman/5.1/en/view-restrictions.html[/url]

Pozdrav
 
Odgovor na temu

Branko Santo
Tu i tamo

Član broj: 57312
Poruke: 2232
*.dial.InfoSky.Net.

Sajt: cz.linkedin.com/in/branko..


+600 Profil

icon Re: update sa dugackim where ... nesto ne valja.10.03.2006. u 21:23 - pre 220 meseci
Ana imas pice kad dodjes u NS :)

Uspeo sam nekako da napravim


Code:

update tiketi set tiketwon = -1 where
(select count(tiketID) from utakmiceodigrane where tiketID = 46) =
(select count(won) from utakmiceodigrane where tiketID = 46)
and (select min(won) from utakmiceodigrane where tiketID = 46) = -1
and tiket = 46 and tiketwon = null;


Malo je mozda rogobatno ali sta cu kad sam jos mali :)

Hvala bas sam se sad malo izvezbao sa ovim subquery-jima :P
 
Odgovor na temu

[es] :: MySQL :: update sa dugackim where ... nesto ne valja.

[ Pregleda: 2321 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.