SQL Distinct + id

Status
Niet open voor verdere reacties.

LL123

Gebruiker
Lid geworden
14 jan 2007
Berichten
26
Hoi ,

Weet iemand hoe ik het ID ook opvraag met een DISTINCT ?
Ik heb een tabel en ik wil enkel de naam van een land opvragen + ook het ID nr !
Maar hij toont alles omdat ID allemaal verschillend is

vb
SELECT DISTINCT landnaam , id FROM tabel ORDER BY landnaam;

ik zou het landnaam willen met het id nr, land naam zou maar één keer mogen voorkomen.

Weet iemand hoe dat schrijft in SQL?
 
Waarschijnlijk heb je nu meer aan de GROUP BY functie
Code:
SELECT id, landnaam
FROM tabel
GROUP BY landnaam
ORDER BY landnaam
Overigens snap ik niet waarom je dan de ID nog wilt hebben aangezien die maar van 1 veld is. Hij geeft dus niet alle ID's waarbij landnaam x is.
 
Waarschijnlijk heb je nu meer aan de GROUP BY functie
Code:
SELECT id, landnaam
FROM tabel
GROUP BY landnaam
ORDER BY landnaam
Overigens snap ik niet waarom je dan de ID nog wilt hebben aangezien die maar van 1 veld is. Hij geeft dus niet alle ID's waarbij landnaam x is.

Neen werkt niet !
Ik heb die ID nodig omdat ik een xml wil creeren.
<Product>
<result landname="Belgie" id="1"/>
<result landname="Ned" id="2" />
</Products>
 
Hoe ziet je database eruit en wat heb je al voor query gemaakt? :)

"SELECT DISTINCT groep_land , groep_id FROM tbl_ww_groepen GROUP BY groep_land ORDER BY groep_land";

Bij deze query maakt hij gewoon een fout!
error fout => System.NullReferenceException: Object reference not set to an instance of an object.

als ik GROUP BY weg laat geeft ie gewoon alle landen soms 2 maal en de id.
 
Laatst bewerkt:
Neen werkt niet !

Vreemd dat hij niet werkt, in mijn database krijg ik netjes alle unieke steden te zien... Echter ik krijg van alle landen maar 1 id te zien dus waarom jij denkt dat je alle id's mee zult krijgen ontgaat mij een beetje :(
 
Hoe ziet je database eruit en wat heb je al voor query gemaakt? :)

zo ziet mijn database er ongeveer uit

id land stad
1 Belgie Antwerpen
2 Belgie Brussel
3 Ned. Rotterdam
4 Ned. Amsterdam

dus zou ik als resultaat moeten hebben
1 Belgie
3 Ned.

dus die id's zijn een probleem ?
 
Code:
1	Raalte
2	Meppel
3	Nijeveen
4	meppel
5	Meppel
6	Meppel
7	Meppel
Als ik deze query gebruik bij mijn DB
Code:
SELECT id, city
FROM sponsors
GROUP BY city
Krijg ik als resultaat
Code:
2	Meppel
3	Nijeveen
1	Raalte
 
Code:
1	Raalte
2	Meppel
3	Nijeveen
4	meppel
5	Meppel
6	Meppel
7	Meppel
Als ik deze query gebruik bij mijn DB
Code:
SELECT id, city
FROM sponsors
GROUP BY city
Krijg ik als resultaat
Code:
2	Meppel
3	Nijeveen
1	Raalte

tja ... weet het zelf niet !
maar waar is je DISTINCT ?
 
Die gebruik ik niet, door GROUP BY haal ik alle "unieke" steden er uit.
 
zo ziet mijn database er ongeveer uit

id land stad
1 Belgie Antwerpen
2 Belgie Brussel
3 Ned. Rotterdam
4 Ned. Amsterdam

dus zou ik als resultaat moeten hebben
1 Belgie
3 Ned.

dus die id's zijn een probleem ?


Hoe geef jij aan de database mee dat je:

1 Belgie
3 Ned.
wilt hebben en niet
2 Belgie
4 Ned

(met andere woorden: welk ID wil je meegeven?)

Databasetechnisch is in jou voorbeeld de ID nl gekoppeld aan een stad en niet aan een land. Je kunt dus niet de landen opvragen met het unieke bijbehorende ID, simpel omdat dit ID niet uniek is. Je zou kunnen zeggen: ik wil het laagste ID van alle steden in NL. Dan krijg je iets als:

SELECT MIN(id) as ID, landnaam
FROM tabel
GROUP BY landnaam
ORDER BY landnaam
 
Hey bedankt ,

het is gelukt zoals jij het schreef !
Ik weet dat de databank niet goed genormaliseerd is maar die had ik niet gemaakt , heb die zo gekregen.


Hoe geef jij aan de database mee dat je:

1 Belgie
3 Ned.
wilt hebben en niet
2 Belgie
4 Ned

(met andere woorden: welk ID wil je meegeven?)

Databasetechnisch is in jou voorbeeld de ID nl gekoppeld aan een stad en niet aan een land. Je kunt dus niet de landen opvragen met het unieke bijbehorende ID, simpel omdat dit ID niet uniek is. Je zou kunnen zeggen: ik wil het laagste ID van alle steden in NL. Dan krijg je iets als:

SELECT MIN(id) as ID, landnaam
FROM tabel
GROUP BY landnaam
ORDER BY landnaam
 
Blij dat je geholpen bent:thumb:. Zet je de status van de vraag nog even op opgelost?
 
Rechtsonderin het scherm, zo'n 8 Cm onder: "Reageer op vraag" vindt je een box: status van de vraag...


Groet,
Arjee
 
Vreemd dat het icoontje dan nog op "Niet Opgelost" staat :(

Je hebt ook wel op "Vraag is opgelost" geklikt?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan