[mySQL] #1064 - rare Syntax foutmelding

Pagina: 1
Acties:
  • 725 views sinds 30-01-2008
  • Reageer

  • Creesch
  • Registratie: Februari 2002
  • Laatst online: 23:42
Ik heb de volgende query geschreven om de laatste 5 posts uit een forum database te plukken. Hierbij zouden de fora met id 19 en 20 overgeslagen moeten worden omdat dat crew fora zijn.


code:
1
2
3
4
5
6
7
8
SELECT *
FROM post
WHERE threadid NOT
IN (SELECT threadid
FROM thread
WHERE thread.forumid =19
OR thread.forumid =20)
order by postid DESC LIMIT 0 , 5


mySQL geeft hierbij de volgende foutmelding:
#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 threadid
FROM thread
WHERE thread.forumid=19
OR threa
Als ik dan kijk op de MySQL site vertelt hij me dat het de volgende foutsoort is "ER_PARSE_ERROR"

Alleen kan ik zelf niet vinden wat ik nou fout doe, is dit SQL die MySQL niet wil slikken of doe ik zelf nou iets fout ?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 07-05 22:49

curry684

left part of the evil twins

Oudere MySQL versies kennen geen subqueries, welke versie heb je?

Bovendien is de query nogal hopeloos onzinnig zo, je bedoelt gewoon dit:
SQL:
1
2
3
4
5
6
SELECT *
FROM post
JOIN thread ON post.threadid = thread.threadid
WHERE forumid NOT
IN (19,20)
ORDER BY postid DESC LIMIT 0 , 5

Deze zal maar een 3000 keer sneller zijn op een beetje database 8)7 Queries met * zijn trouwens ook bad practice maar okee.

[ Voor 7% gewijzigd door curry684 op 13-04-2005 13:53 ]

Professionele website nodig?


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 08-05 11:55

mulder

ik spuug op het trottoir

You have an error in your SQL syntax
Lijkt me toch wel duidelijk, ondersteund jouw MySQL versie wel subselects?

[ Voor 0% gewijzigd door mulder op 13-04-2005 13:55 . Reden: lekker op tijd ]

oogjes open, snaveltjes dicht


  • Creesch
  • Registratie: Februari 2002
  • Laatst online: 23:42
curry684 schreef op woensdag 13 april 2005 @ 13:53:
Oudere MySQL versies kennen geen subqueries, welke versie heb je?

Bovendien is de query nogal hopeloos onzinnig zo, je bedoelt gewoon dit:
SQL:
1
2
3
4
5
6
SELECT *
FROM post
JOIN thread ON post.threadid = thread.threadid
WHERE forumid NOT
IN (19,20)
ORDER BY postid DESC LIMIT 0 , 5

Deze zal maar een 3000 keer sneller zijn op een beetje database 8)7 Queries met * zijn trouwens ook bad practice maar okee.
Heel erg bedankt :D erg stom dat ik niet eens aan een join heb gedacht :/ (moet blijkbaar toch maar eens vroeger gaan slapen ;) )

edit:
* was ik ook niet van plan te blijven gebruiken :) ik was de queries aan het uitvoeren in phpmyadmin om ze te checken en meestal doe ik dan gewoon even makkelijk * (houd het een beetje overzichtelijk)
Don Facundo schreef op woensdag 13 april 2005 @ 13:55:
[...]


Lijkt me toch wel duidelijk, ondersteund jouw MySQL versie wel subselects?
dat is dus ook wat ik vroeg (ok in andere bewoordingen) :)

MySQL 4.0.23 word er trouwens gebruikt

[ Voor 10% gewijzigd door Creesch op 13-04-2005 14:31 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 07-05 22:49

curry684

left part of the evil twins

craze_ schreef op woensdag 13 april 2005 @ 14:27:
dat is dus ook wat ik vroeg (ok in andere bewoordingen) :)

MySQL 4.0.23 word er trouwens gebruikt
Subqueries kunnen pas vanaf 4.1 :)

Professionele website nodig?


  • Creesch
  • Registratie: Februari 2002
  • Laatst online: 23:42
curry684 schreef op woensdag 13 april 2005 @ 14:42:
[...]

Subqueries kunnen pas vanaf 4.1 :)
vandaar :)
naja geluk bij een ongeluk nu heb ik een query die wat practischer is :P
Pagina: 1