Toon posts:

[mysql] verkeerde sql query

Pagina: 1
Acties:

Verwijderd

Topicstarter
mensen.

ik ben met een soort van toto applicatie bezig waarmee mensen kunnen gokken op uitslagen van wedstrijden.
dit alles in toto stijl, dus geen uitslagen; maar alleen een 1 2 of 3.

nu heb ik:
een tabel met deelnemers (did, naam, email, punten)
een tabel met wedstrijden (wid, thuisclub, uitclub, uitslag)
en een koppeltabel vanwege de n-n relatie (kid, did, wid, gok)

wat ik nu wil is dat ik dmv 1 query de punten bij deelnemers kan optellen door bij de wedstrijden een uitslag in te geven.
probleem is dat mijn mysql versie nog geen subquestions ondersteunt..

wat ik nu probeerde werkt dus niet:
code:
1
2
3
4
5
UPDATE deelnemers 
SET punten=punten+1 
WHERE did IN 
(SELECT did FROM koppel 
WHERE wid=2 AND gok=1)


iemand een suggestie om het op een andere manier te doen ?!

  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
Pikt MySQL zoiets:
code:
1
2
3
4
5
6
UPDATE deelnemers
SET punten = d.punten + 1
FROM deelnemers as d
JOIN koppel as k ON (k.did = d.did)
WHERE (k.wid = 2)
AND (k.gok = 1)

Never underestimate the power of


Verwijderd

Topicstarter
MySQL retourneerde:


#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 'FROM personen AS d JOIN koppeling AS k ON ( k.pid = d.pid ) WH

  • whoami
  • Registratie: December 2000
  • Laatst online: 25-05 23:56

https://fgheysels.github.io/


  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
code:
1
2
3
4
5
6
7
8
9
10
UPDATE
  deelnemers, koppel
SET
  deelnemers.punten = deelnemers.punten + 1
WHERE
  deelnemers.did = koppel.did
AND
  koppel.wid = 2
AND
  koppel.gok = 1

Zo mischien? (is wel alleen mogelijk vanaf versie 4.0.4!)

Zie ook de manual voor meer info.

[ Voor 28% gewijzigd door Michali op 11-05-2004 13:11 ]

Noushka's Magnificent Dream | Unity


Verwijderd

Moet met join. lijkt me een rtm. :) succes

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Spijtbetuiging:
Moet met join. lijkt me een rtm. :) succes
Dat is wel leuk, maar je weet misschien niet dat MySQL een beetje gehandicapt is als het gaat om dat soort dingen. Gelieve dus voortaan even je "sources te checken" voordat je zegt dat het een rtm-vraag is ;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
drm schreef op 11 mei 2004 @ 13:17:
[...]
Dat is wel leuk, maar je weet misschien niet dat MySQL een beetje gehandicapt is als het gaat om dat soort dingen. Gelieve dus voortaan even je "sources te checken" voordat je zegt dat het een rtm-vraag is ;)
offtopic:
Is een multiple table update/delete ook een handicap? Ik vind het in ieder geval een hele bijzondere functionaliteit.
Zou het soms het geavanceerde MySQL alternatief voor cascading updates/deletes zijn.

Never underestimate the power of


  • whoami
  • Registratie: December 2000
  • Laatst online: 25-05 23:56
Een multiple delete / update ? Wat bedoel je daarmee ? Dat je met een DELETE / UPDATE statement meerdere tabellen in 1x kunt bewerken? Zoja, dan kan dat ook niet in MySQL hoor. Een delete / update voert maar gegevens door in 1 tabel.

https://fgheysels.github.io/


  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
whoami schreef op 11 mei 2004 @ 13:22:
Een multiple delete / update ? Wat bedoel je daarmee ? Dat je met een DELETE / UPDATE statement meerdere tabellen in 1x kunt bewerken? Zoja, dan kan dat ook niet in MySQL hoor. Een delete / update voert maar gegevens door in 1 tabel.
De MySQL manual zegt toch echt, dat je records uit verschillende tabellen tegelijk kunt updaten/deleten.
Begin me af te vragen of dat dan ook voor inserts mogelijk is.

[ Voor 3% gewijzigd door cameodski op 11-05-2004 13:34 ]

Never underestimate the power of


Verwijderd

Topicstarter
[quote]
code:
1
2
3
4
5
6
7
8
9
10
UPDATE
  deelnemers, koppel
SET
  deelnemers.punten = deelnemers.punten + 1
WHERE
  deelnemers.did = koppel.did
AND
  koppel.wid = 2
AND
  koppel.gok = 1


Top, deze werkt wel

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
cameodski schreef op 11 mei 2004 @ 13:34:
[...]

De MySQL manual zegt toch echt, dat je records uit verschillende tabellen tegelijk kunt updaten/deleten.
Begin me af te vragen of dat dan ook voor inserts mogelijk is.
Lijkte me een beetje onzinnig om zoiets ook voor een insert te ondersteunen omdat daar ook weinig op te joinen valt, lijkte me. Mischien kun je een leuk voorbeeldje bedenken?

Noushka's Magnificent Dream | Unity


  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
Michali schreef op 11 mei 2004 @ 13:50:
[...]

Lijkte me een beetje onzinnig om zoiets ook voor een insert te ondersteunen omdat daar ook weinig op te joinen valt, lijkte me. Mischien kun je een leuk voorbeeldje bedenken?
Heb je wel eens geprobeerd om objecten in een relationele database te zetten? En dan natuurlijk wel objecten die gebruik maken van inheritance.
Een multiple table insert lijkt me dan ook wel erg handig.

Never underestimate the power of


  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
cameodski schreef op 11 mei 2004 @ 13:56:
[...]

Heb je wel eens geprobeerd om objecten in een relationele database te zetten? En dan natuurlijk wel objecten die gebruik maken van inheritance.
Een multiple table insert lijkt me dan ook wel erg handig.
Maar is dat dan naar 1 tabel meerdere records schrijven, of naar meerdere tabellen 1 gelinkte record schrijven (oid)?

Noushka's Magnificent Dream | Unity


  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
Michali schreef op 11 mei 2004 @ 14:02:
[...]

Maar is dat dan naar 1 tabel meerdere records schrijven, of naar meerdere tabellen 1 gelinkte record schrijven (oid)?
Het gaat dan inderdaad om één object dat in meerdere tabellen wordt opgeslagen.

Never underestimate the power of


Verwijderd

Topicstarter
Ik heb nog een probleem welke nie direct toepasbaar is op dit topic, maar welke wel mooi gecombineerd kan worden.
Zonde om nieuw topic over aan te maken.

De spelers van deze toto moeten eerst inloggen om mee te doen. De doen ze door een form in te vullen en te versturen. Als ze deze versturen wordt een functie aangeroepen welke kijkt of de data klopt en plaatst deze zonodig een cookie.
Alleen heb ik nu het probleem, die functie is in een include file gezet en wordt aangeroepen ergens midden in de page. Hij kan dan geen cookie meer zetten omdat de header reeds gezet is..

Hoe kan ik dit het beste aanpassen, ik dacht zelf aan de functie meteen bovenin de page aan te roepen, maar dit werkt niet.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

cameodski schreef op 11 mei 2004 @ 13:21:
[...]

offtopic:
Is een multiple table update/delete ook een handicap? Ik vind het in ieder geval een hele bijzondere functionaliteit.
Zou het soms het geavanceerde MySQL alternatief voor cascading updates/deletes zijn.
Wat moet ik me bij multiple table update/delete voorstellen behalve een halfslachtige implementatie van transactions?

offtopic:
En wil je aub 'cascading' en 'MySQL' niet in 1 zin gebruiken, dadelijk gaan mensen nog denken dat het een volwaardig RDBMS is ;) :+

Professionele website nodig?


  • Squall-sX
  • Registratie: April 2002
  • Laatst online: 05-05 11:53
Verwijderd schreef op 11 mei 2004 @ 23:48:
De spelers van deze toto moeten eerst inloggen om mee te doen. De doen ze door een form in te vullen en te versturen. Als ze deze versturen wordt een functie aangeroepen welke kijkt of de data klopt en plaatst deze zonodig een cookie.
Alleen heb ik nu het probleem, die functie is in een include file gezet en wordt aangeroepen ergens midden in de page. Hij kan dan geen cookie meer zetten omdat de header reeds gezet is..
De include en de aanroeping van de functie gewoon bovenaan de pagina zou
moeten werken. Maar dit lijkt me eerder te gaan over een webscripting taal, en
niet meer mysql. Misschien toch beter een nieuw topic openen.

Weet er iemand eigenlijk of MySQL nu ook relaties ondersteund. Ik weet dat ik
ooit heb geprobeerd van een relatie te leggen tussen twee tabellen. Ik kreeg
geen fout, maar hij legde wel geen link. In de manual heb ik toen gelezen dat hij
dit nog niet ondersteunde. Nu wel?

  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
curry684 schreef op 12 mei 2004 @ 00:42:
[...]

Wat moet ik me bij multiple table update/delete voorstellen behalve een halfslachtige implementatie van transactions?
Het is denk ik meer een pleister op de wonde om het gebrek aan triggers en cascading updates/deletes een beetje op te vullen. _/-\o_
offtopic:
En wil je aub 'cascading' en 'MySQL' niet in 1 zin gebruiken, dadelijk gaan mensen nog denken dat het een volwaardig RDBMS is ;) :+
Mag het zo wel: MySQL <> cascading? :P

Never underestimate the power of

Pagina: 1