Toon posts:

[MySQL] probleem met subquery

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik heb een probleempje met de volgende query. (raar eigenlijk, omdat deze bijna letterlijk vanaf de mysql site komt :?)

code:
1
2
3
4
5
SELECT administratorid 
FROM tbl_link_adminsgroups
WHERE 1 = 
     (SELECT COUNT(administratorid) 
     FROM tbl_link_adminsgroups)


De foutmelding die ik krijg is de volgende:
"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 COUNT(administratorid) FROM tbl_link_adminsgroups)' at l"

Hetgeen ik wil bereiken is dat ik alle ID's terug krijg die maar 1 keer voorkomen in de kolom 'administratorid'. Met deze query moet het lukken, maar aangezien ik telkens een syntax error krijg ben ik op de MySQL site gaan kijken, waar ik die query dus ook tegenkwam. (http://www.mysql.com/doc/...ons_using_subqueries.html, onderaan)

Wie kan me vertellen wat ik fout doe?

  • MeIsTwisted
  • Registratie: November 2001
  • Laatst online: 28-07-2023

MeIsTwisted

not a Twisted mind

heb je wel mysql 4.1?

eerdere versies ondersteunen geen subqueries

Multimonitor is relax :P


  • Terranca
  • Registratie: April 2000
  • Laatst online: 11:02
Welke MySQL versie gebruik je? Want 4.0.x heeft geen ondersteuning voor subqueries. Vaak kan je het echter wel omzetten in een join.

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

code:
1
2
3
4
SELECT administratorid 
FROM tbl_link_adminsgroups
group by administratorid
having count(*) = 1

Who is John Galt?


Verwijderd

Topicstarter
mjah, ik heb dus 4.0.x

ik zal m gelijk upgraden... thx :)

Verwijderd

Topicstarter
justmental schreef op 25 maart 2004 @ 19:35:
code:
1
2
3
4
SELECT administratorid 
FROM tbl_link_adminsgroups
group by administratorid
having count(*) = 1
deze werkt helaas niet... hij geeft ook rijen terug die wel meer dan 1x voorkomen...
fyi

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Verwijderd schreef op 25 maart 2004 @ 20:10:
deze werkt helaas niet... hij geeft ook rijen terug die wel meer dan 1x voorkomen...
fyi
Ik heb al diverse bugs in MySQL voorbij zien komen, maar dit zou ik behoorlijk bijzonder vinden.

Who is John Galt?


Verwijderd

Topicstarter
Dit is m geworden:

code:
1
2
3
4
5
SELECT * 
FROM tbl_link_adminsgroups 
GROUP BY administratorid 
HAVING COUNT(administratorid) = 1 
AND groupid='".$_GET['idgroup']."'


werkt als een tierelier :)

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Verwijderd schreef op 25 maart 2004 @ 20:24:
Dit is m geworden:

code:
1
2
3
4
5
SELECT * 
FROM tbl_link_adminsgroups 
GROUP BY administratorid 
HAVING COUNT(administratorid) = 1 
AND groupid='".$_GET['idgroup']."'


werkt als een tierelier :)
SQL Injection alert!

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • blizt
  • Registratie: Januari 2003
  • Laatst online: 22-05 10:11

blizt

Wannabe-geek

Misschien zeg ik nu wat doms, maar kan 't niet gewoon met Distinct?

United we stand, and divided we fall


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

blizt schreef op 25 maart 2004 @ 21:37:
Misschien zeg ik nu wat doms, maar kan 't niet gewoon met Distinct?
Wil je een eerlijk of een beleefd antwoord? :o

Distinct maakt je resultaten uniek, maar zegt dus niks over hoe vaak iets voorkomt.

Who is John Galt?


  • blizt
  • Registratie: Januari 2003
  • Laatst online: 22-05 10:11

blizt

Wannabe-geek

Hm... uit de opening-post:
Hetgeen ik wil bereiken is dat ik alle ID's terug krijg die maar 1 keer voorkomen in de kolom 'administratorid'.
Hij wil dus alle unieke resultaten... dat doe je toch met distinct?

United we stand, and divided we fall


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

blizt schreef op 25 maart 2004 @ 21:56:
Hm... uit de opening-post:

[...]

Hij wil dus alle unieke resultaten... dat doe je toch met distinct?
unieke resultaten != waarden met 1 voorkomen

Een distinct op de reeks: 1,2,1,3 geeft 1,2,3
Maar alleen de waarden 2 en 3 komen maar 1 keer voor

Who is John Galt?


  • blizt
  • Registratie: Januari 2003
  • Laatst online: 22-05 10:11

blizt

Wannabe-geek

Ah, nu snap ik 't ;)
Dan snapte ik de opening post gewoon verkeerd ... want ik dacht dat ie dus ook (in jouw voorbeeld) 1,2, 3 zou willen i.p.v. 1, 2, 1, 3 (:

United we stand, and divided we fall


Verwijderd

Topicstarter
EfBe schreef op 25 maart 2004 @ 20:51:
[...]

SQL Injection alert!
i know, maar die var wordt eerder in het script al gechecked en ik inject hier niks, maar select alleen :)
Pagina: 1