Ik ben bezig met het maken van een overzicht van geregistreerde gebruikers. omdat dit er erg veel zijn maak ik verschillende pagina's. per pagina worden er 20 gebruikers getoond. Het is mogelijk om dit met een ID te doen maar omdat er steeds leden bijkomen en de leden op alfabetische volgorde weergegeven moeten worden.
Ik weet dat het in MSSQL mogelijk is om een index mee tegeven zodat de tabel automatisch op alfabetesche volgorde gezet kan worden maar dat is niet de bedoeling omdat de applicatie ook op MySQL werkt. En daar wordt gewoon een limit meegegeven. Omdat de applicatie zowel op MySQL en MSSQL moet werken moet ik dus het aanroepen van de Query onafhankelijk maken.
Bij MySQL moet er een begin waarde meegegeven worden en hoeveel rijen dus
Ik kan deze waarde ook gebruikeren voor MSSQL. Namelijk zo
Dus in deze query wil ik de top 20 hebben vanaf de top 100. Dus de eerste 20 gebruikers na de eerste 100 gebruikers. Dus krijg ik gebruikers 101 t/m 120
Dit werkt perfect maar ik wil niet zomaar alle gebruikers selecteren maar ik wil een RIGHT JOIN doen. Dus ik doe dit.
Nu onstaat er een error. De Query analyser geeft deze error.
The column 'ID' was specified multiple times for 'aantal'.
Dus de JOIN werkt niet
Ik doe een JOIN op 2 verschillende tabellen en dus 2 verschillende ID's maar dat werkt niet.
Ik heb geprobeert alliassen aan de tabellen mee te geven maar het probleem zit hem niet in de tabellen maar de server denkt dat het gaat om de zelfde kolom denk ik
Ik weet dat het in MSSQL mogelijk is om een index mee tegeven zodat de tabel automatisch op alfabetesche volgorde gezet kan worden maar dat is niet de bedoeling omdat de applicatie ook op MySQL werkt. En daar wordt gewoon een limit meegegeven. Omdat de applicatie zowel op MySQL en MSSQL moet werken moet ik dus het aanroepen van de Query onafhankelijk maken.
Bij MySQL moet er een begin waarde meegegeven worden en hoeveel rijen dus
code:
1
| Limit 0,20 |
Ik kan deze waarde ook gebruikeren voor MSSQL. Namelijk zo
code:
1
2
3
4
5
6
7
| select * from (
select top 20 * from (
select top 100 *
from gebruiker
order by gebruiker asc
) as aantal order by gebruiker desc
) as aantal1 order by gebruiker asc |
Dus in deze query wil ik de top 20 hebben vanaf de top 100. Dus de eerste 20 gebruikers na de eerste 100 gebruikers. Dus krijg ik gebruikers 101 t/m 120
Dit werkt perfect maar ik wil niet zomaar alle gebruikers selecteren maar ik wil een RIGHT JOIN doen. Dus ik doe dit.
code:
1
2
3
| select * from ( select top 10 * from ( select top10 0 * from gebruiker RIGHT JOIN gebruiker_adressen ON gebruiker_adressen.ID = gebruiker.ID order by gebruiker asc ) as aantal order by gebruiker decs) as aantal1 order by gebruiker asc |
Nu onstaat er een error. De Query analyser geeft deze error.
The column 'ID' was specified multiple times for 'aantal'.
Dus de JOIN werkt niet
Ik heb geprobeert alliassen aan de tabellen mee te geven maar het probleem zit hem niet in de tabellen maar de server denkt dat het gaat om de zelfde kolom denk ik
Jochemmol