[SQL] Subselect werkt niet *

Pagina: 1
Acties:
  • 44 views sinds 30-01-2008

  • GoVegan
  • Registratie: Juni 2002
  • Laatst online: 16-08 22:25
he hoi

ik was bezig wat sql tutorials door te lezen en kwam af en toe dingen zoals deze tegen:
SQL:
1
2
3
4
 
SELECT Titel 
FROM Boeken 
WHERE Prijs = (SELECT MAX(Prijs) FROM Boeken); 


Nu probeer ik het volgende (via php) uit op mijn eigen mysql database
SQL:
1
2
SELECT user.id, user.name FROM user WHERE user.id = 
       (SELECT AVG(user.id) FROM user)


maar krijg dan foutmeldingen als deze:

You have an error in your SQL syntax near 'SELECT AVG(user.id) FROM user)' at line 1


wat doe ik fout.

iemand nog surgetsties voor goed tutotials.

peter

[ Voor 5% gewijzigd door curry684 op 15-09-2003 00:21 . Reden: [code]-tags en titel fix0red ]


  • Joen
  • Registratie: Juli 2003
  • Laatst online: 23:42
MySQL ondersteubnd geen Subselects (want dat is deze query in weze).
Dus als je MySQL als databaseserver gebruikt weet je nu waar het aan ligt. Deze tutorial is dan in jouw niet geschikt voor je. ;)

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Overigens doe je hier uiteraard iets wat soms gewoonweg geen atwoord heeft. AVG berekent het gemiddelde van een bepaalde waarde. Jij hebt nu een query gemaakt waarmee je alle gebruikers opzoekt die een ID hebben die gelijk is aan het gemiddelde van alle ID's....?

Wat gebeurt er met jouw query als er als gemiddelde 5,5 uitkomt? Dan is je query leeg. Tenzij dit natuurlijk echt is wat je wil, maar dan snap ik het nut er even niet van ;)

Ontopic:
Zoals JeroenM_tbs al aangeeft: niet elke database ondersteunt subqueries. Check of jouw database dat wel doet. Zo nee: dat is je antwoord! Mogelijke oplossing hiervoor is het gemiddelde opslaan in een variabele en die in je query gebruiken. Zo ja: er is (nog steeds) iets mis met je query. In dit laatste geval is het misschien verstandig om allebei de queries een keer los te draaien om te kijken of ze allebei kloppen (veldnamen etc.)

My personal website


  • GoVegan
  • Registratie: Juni 2002
  • Laatst online: 16-08 22:25
OZ-Gump schreef op 14 September 2003 @ 21:44:
Overigens doe je hier uiteraard iets wat soms gewoonweg geen atwoord heeft. AVG berekent het gemiddelde van een bepaalde waarde. Jij hebt nu een query gemaakt waarmee je alle gebruikers opzoekt die een ID hebben die gelijk is aan het gemiddelde van alle ID's....?
ja oke, snap ik. het was ook maar als voorbeeld.
en ja denk dat je gelijk hebt dat mijn mysql het niet ondersteund. dus is het maar even zoeken naar een ander omweg.

en het gemiddelde eerst in variable opslaan, wou ik nietdoen, omdat ik graag alles in 1 sql query wou stoppen. ( het gaat uiteindelijke om een andere query, dit was gewoon korte query ter voorbeeld.)

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

GoVegan schreef op 14 September 2003 @ 21:20:
iemand nog surgetsties voor goed tutotials.
Als je een suggestie wilt zou ik even kijken in P&W FAQ - SQL.

Dat is trouwens de FAQ waar je ook na kunt lezen dat groetjes onder een post niet hoeven, waar we vermelden dat topictitels duidelijk moeten zijn (dus niet 'vraagje' ;) ).

Verder had je dit kunnen terugvinden in de docs van MySQL en heeft dit topic nu verder weinig nut.

*kloenk* :+

Professionele website nodig?


Dit topic is gesloten.