Hoe selecteer ik een enkele naam
Nu kan het zijn dat deze kolom (2010Combination.personFEIid) meerdere malen voorkomt.
[sql]
SELECT person.*, horse.*, 2010Combination.*
FROM FEIPerson AS person
INNER JOIN 2010Combination ON person.fei_id = 2010Combination.personFEIid
INNER JOIN FEIHorse horse ON horse.fei_id = 2010Combination.horseFEIid
ORDER BY person.competing_for_country, 2010Combination.compNumber ASC ";
[/sql]
In enkele gevallen is het mogelijk dat (2010Combination.personFEIid) vaker voorkomt
maar dat (2010Combination.nameGroom) NIET vaker voorkomt.
In dat geval moeten beide records in het resultaat opgenomen worden.
Kan ik dit in één sql doen of is een andere constructie nodig
Gewijzigd op 23/09/2015 15:24:31 door Harry H Arends
SELECT DISTINCT ...
Maakt geen verschil
Wat je nu doet geeft de rijen met unieke waardes voor alle kolommen uit de 3 tabellen.
Voorbeeld
Het er dus om om als er in de kolom Rider een dubbele naam voorkomt er maar één te tonen. Maar als er in de kolom Groom geen dubbele naam voorkomt moet deze wel getoond worden.
Dit document laat zien wat er nu uitkomstHet er dus om om als er in de kolom Rider een dubbele naam voorkomt er maar één te tonen. Maar als er in de kolom Groom geen dubbele naam voorkomt moet deze wel getoond worden.
SELECT DISTINCT 2010Combination.Rider, 2010Combination.Groom FROM etc.
Sowieso is het gebruik van het sterretje niet handig. Schrijf gewoon de kolomnamen uit van welke je wilt hebben (en je wilt niet meer dan nodig).
Jan de Laet op 27/09/2015 09:12:55:
Als je nou in plaats van SELECT DISTINCT person.*, horse.*, 2010Combination.* alleen de velden noemt die je nodig hebt, dus Rider en Groom dan werkt het.
SELECT DISTINCT 2010Combination.Rider, 2010Combination.Groom FROM etc.
SELECT DISTINCT 2010Combination.Rider, 2010Combination.Groom FROM etc.
Dan moet ik bijna 30 velden benoemen maar ik ga het proberen.
SELECT person.*, horse.*, 2010Combination.*
FROM FEIPerson AS person
INNER JOIN 2010Combination ON person.fei_id = 2010Combination.personFEIid
INNER JOIN FEIHorse horse ON horse.fei_id = 2010Combination.horseFEIid
GROUP BY 2010Combination.personFEIid , 2010Combination.nameGroom
ORDER BY person.competing_for_country, 2010Combination.compNumber ASC
Harry H Arends op 28/09/2015 11:21:28:
Dan moet ik bijna 30 velden benoemen maar ik ga het proberen.
30 velden? Toch ben ik stiekem wel benieuwd wat daarin staat, want het klinkt alsof er wat normalisaties in de database missen.