PHP mysql advies gevraagd

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 02:04

aex351

I am the one

Topicstarter
Het zit zo er is een mysql tabel A met daarin allemaal gebruikers, er is ook een tabel B met daarin allemaal losse dingen van verschillende users.

Nu op de PHP pagina X staan 26 querys die elk de users ophalen op alfabet , dus query #1 selecteerd iedereen die met het letter A begint enz. Nu kom het lastigste gedeelte. mysql mag alleen iedereen met het letter A selecteren waarvan per user minimaal 15 records in Tabel B zich bevinden.

Hoe pak ik dit aan?

< dit stukje webruimte is te huur >


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
select a.username,b.option
from a,b
where a.userid=b.userid
having (count(b.option)>15)

zoiets???

Acties:
  • 0 Henk 'm!

  • Digihelp ®
  • Registratie: Maart 2001
  • Laatst online: 18-08 11:09
Niet getest, maar zou zo iets niet werken:

SELECT * FROM Table1 a, Table2 b, WHERE a.username LIKE 'a%' AND a.id = b.userid AND COUNT(b.id)>15;

Acties:
  • 0 Henk 'm!

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 19:10

Robtimus

me Robtimus no like you

Gomez12 schreef op vrijdag 14 oktober 2005 @ 20:33:
select a.username,b.option
from a,b
where a.userid=b.userid
having (count(b.option)>15)

zoiets???
Waarschijnlijk moet je ook nog even groupen op je username en option.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Acties:
  • 0 Henk 'm!

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 02:04

aex351

I am the one

Topicstarter
Digihelp ® schreef op vrijdag 14 oktober 2005 @ 20:33:
Niet getest, maar zou zo iets niet werken:

SELECT * FROM Table1 a, Table2 b, WHERE a.username LIKE 'a%' AND a.id = b.userid AND COUNT(b.id)>15;
Ik krijg een error melding wanneer ik count op die manier gebruik. Ik heb even de mysql website doorgespit en met het informatie dat ik heb kunnen vinden, ook voorbeelden, staat count bij SELECT en niet in WHERE.

code:
1
1111 - Invalid use of group function

[ Voor 8% gewijzigd door aex351 op 15-10-2005 13:44 ]

< dit stukje webruimte is te huur >


Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 16:36
aex351 schreef op zaterdag 15 oktober 2005 @ 13:43:
[...]

Ik krijg een error melding wanneer ik count op die manier gebruik. Ik heb even de mysql website doorgespit en met het informatie dat ik heb kunnen vinden, ook voorbeelden, staat count bij SELECT en niet in WHERE.

code:
1
1111 - Invalid use of group function
Je moet ook nog een group by uitvoeren op het userid:
code:
1
2
3
4
5
SELECT username 
FROM Table1 a, Table2 b, 
WHERE a.username LIKE 'a%' 
AND a.id = b.userid AND COUNT(b.id)>15 
GROUP BY username;

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 02:04

aex351

I am the one

Topicstarter
Dan krijg ik alsnog een error terug gekregen

code:
1
2
3
4
5
6
7
select  links.alias, stats.alias, stats.active
from stats, links 
where stats.alias like 'a%' 
and stats.active='1' 
and stats.alias = links.alias
and count(links.alias)>15
group by stats.alias


code:
1
1111 - Invalid use of group function


edit : opgelost
code:
1
2
                        group by    stats.alias 
                            HAVING COUNT(links.alias)>=15
moet het zijn. plus nog een count in SELECT

[ Voor 44% gewijzigd door aex351 op 15-10-2005 14:08 ]

< dit stukje webruimte is te huur >


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Zoek es in een fatsoenlijke SQL-handleiding/boek op wat HAVING doet en kijk dan nog es naar de 1e reply. Die is overigens niet helemaal correct, maar volgens mij is dat eenvoudig zelf uit te vinden.

[edit]
Zo te zien had je het tijdens mijn reply zelf al gevonden :)

[ Voor 16% gewijzigd door ACM op 15-10-2005 14:36 ]

Pagina: 1