Vraag & Antwoord

Webprogrammeren & scripting

[SQL] subquery

4 antwoorden
  • Hallo mensen, Ik heb moeite met subqueries. Ik krijg het vaak niet voor elkaar te doorgronden waarom een bepaalde query niet werkt. Ik krijg de volgende namelijk niet aan de praat: SELECT cell1 FROM table WHERE datum = (SELECT max(datum) FROM table WHERE datum < '2007-09-19) Ik werk op een server met mySQL versie 4.0.27 Bedankt Jasper
  • [quote:9be60478ce="jasperlevink"]Hallo mensen, Ik heb moeite met subqueries. Ik krijg het vaak niet voor elkaar te doorgronden waarom een bepaalde query niet werkt. Ik krijg de volgende namelijk niet aan de praat: SELECT cell1 FROM table WHERE datum = (SELECT max(datum) FROM table WHERE datum < '2007-09-19) Ik werk op een server met mySQL versie 4.0.27 Bedankt Jasper[/quote:9be60478ce] Allereerst: ik hoop niet dat de tabel echt de naam 'table' heeft. Dat is een gereserveerde term, die je op zich wel kan gebruiken, maar dat wordt niet aangeraden. Beter is om een naam te kiezen waaraan je kan zien wat er in de tabel wordt opgeslagen. Ik ga er maar even van uit dat het gewoon een voorbeeld is... Anyway, als antwoord op je vraag: uit een subquery krijg je een recordset terug, geen waarde. Je zal dus moeten controleren of de het veld wat je zoekt voorkomt IN die recordset. Om je voorbeeld te gebruiken:[code:1:9be60478ce]SELECT cell1 FROM table WHERE datum IN (SELECT max(datum) FROM table WHERE datum < '2007-09-19') [/code:1:9be60478ce]Dan krijg je wel resultaat.
  • Hallo meneer_ed (en anderen) Bedankt voor je reactie. Ik dacht altijd dat je gewoon = kunt gebruiken als je zeker weet dat je subquery maar één resultaat geeft (zoals hier). Echter ik heb IN geprobeerd maar ook dat werkt niet: *************** Fout SQL-query: Documentatie SELECT uitthuis, tegenstander, uitslag, datum FROM wedstrijdsecretaris_wedstrijden WHERE datum IN ( SELECT max( datum ) FROM wedstrijdsecretaris_wedstrijden WHERE datum < '2007-09-20' ) MySQL retourneerde: Documentatie #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 'SELECT max(datum) FROM wedstrijdsecretaris_wedstrijden WHERE da ************** De losse subquery werkt prima en ook de query met het resultaat ingevuld werkt ook prima.. Ik snap er niks van... Thanks
  • Heb het probleem gevonden.. Versie 4.0.x is niet voldoende :( Bedankt voor de moeite!

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.