Citaat:
Nee, in dit geval krijg je enkel 'Jan', het eerste resultaat dus, te zien.
Code:
select naam, adres from tabel group by adres
Neen in dat geval krijg je in elke deftige database een foutmeldig terug, MySQL geeft je een waarde welke hij toevallig als eerste tegenkomt.
In een group by mag je enkel de kolommen vermelden die ofwel in de groupby (in dit geval adres) staan of waar een functie (max, min, count, ..) op gebeurt die bepaalt welke waarde je wil zien. (sorry, 't is iets waar ik me nogal sterk aan erger
)
Citaat:
Maar ik wil in die query de twee namen terugkrijgen.
Hoe wil je die namen terugkrijgen?
- In twee verschillende kolommen? Dat zal volgens mij niet lukken.
- In één kollom met een scheidingsteken er tussen? Dat kan eventueel door een speciale functie (stored procedure) hiervoor te schrijven. De database zal dan wel voor elke rij een extra query uitvoeren.
In jouw geval zou ik dit in het programma afhandelen.
1) één query van alle records gesorteerd per adres.
2) lees het eerste adres in tijdelijk adres-veld en bewaar de naam in een array
3) in een lus lees het volgende adres.
Indien zelfde adres als tijdelijk adres
- schrijf de naam in array
Indien het een ander adres of Einde bestand is:
- maak een etiket met de gegevens in de array en tijdelijk adres
- schrijf het adres van huidig record in tijdelijk adres en andere gegevens in een leeggemaakte array
4) Na de lus kijk je of er nog iets in de array zit en zo ja maak je er een etiket van.
Hopelijk is het zowat duidelijk en heb je er iets aan.
mvg,
Caygull.