Hoe selecteer ik een enkele naam

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Harry H Arends

Harry H Arends

23/09/2015 15:23:03
Quote Anchor link
Met onderstaande SQL maak ik een lijst aan met alle namen.
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
 
PHP hulp

PHP hulp

24/01/2020 17:50:46
 
Eddy E

Eddy E

23/09/2015 21:12:56
Quote Anchor link
SELECT DISTINCT ...
 
Harry H Arends

Harry H Arends

25/09/2015 11:11:56
Quote Anchor link
SELECT DISTINCT person.*, horse.*, 2010Combination.*

Maakt geen verschil
 
Jan de Laet

Jan de Laet

25/09/2015 11:32:07
Quote Anchor link
Harry, ik denk dat je een voorbeeld moet geven, want ik begrijp niet wat je wilt bereiken.

Wat je nu doet geeft de rijen met unieke waardes voor alle kolommen uit de 3 tabellen.
 
Harry H Arends

Harry H Arends

26/09/2015 13:05:35
Quote Anchor link
Dit document laat zien wat er nu uitkomstVoorbeeld
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.
 
Jan de Laet

Jan de Laet

27/09/2015 09:12:55
Quote Anchor link
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.
 
Eddy E

Eddy E

27/09/2015 14:57:40
Quote Anchor link
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).
 
Harry H Arends

Harry H Arends

28/09/2015 11:21:28
Quote Anchor link
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.

Dan moet ik bijna 30 velden benoemen maar ik ga het proberen.
 
Jacco Engel

Jacco Engel

28/09/2015 14:30:38
Quote Anchor link
Probeer :
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
 
- Ariën -
Beheerder

- Ariën -

28/09/2015 14:36:42
Quote Anchor link
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.
 
Thomas van den Heuvel

Thomas van den Heuvel

28/09/2015 14:53:07
Quote Anchor link
Ik zou zeggen: neem de oorzaak dat je dubbele combinaties ziet weg, is dit omdat dezelfde combinatie met meerdere paarden werkt? Gooi Haal de horse-tabel uit je query?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.