Ik heb even een vraag.

ik heb in mijn data base 4 tabellen.

nu heb ik door middel van foreign key een aantal velden gekoppeld.
als ik nu in een tabel een keuze maak, had ik graag gezien dat de rest van de gekoppelde velden automatisch wordt aangevuld.

tabellen:
Users:
id
password
geleiders.naam_geleider

Geleider:
idgeleiders
naam_geleider

Hond:
idhond
naam_hond
geleiders.naam_geleider

status:
id
users.idusers
hond.naam_hond
geleiders.naam_geleider

nu wil ik dus bijvoorbeeld als ik in de tabel status de naam_hond kies uit het lijstje dat dan de naam_geleider en idusers automatisch wordt aangevuld

ik hoop dat mijn vraag een beetje duidelijk is zo
Je wil dus gegevens selecteren voor een overzicht? Is dat de vraag? Of wil je bij het invullen van gegevens dat gegevens worden aangevuld?
het liefste zou ik zien dat dit bij het invullen gebeurt, bij het overzicht kan ik dit gewoon uit de diverse tabellen selecteren
Bij het invullen moet je helemaal niets doen. De link is al gelegd, die moet je niet dubbel leggen.
Een foreign key alléén is niet voldoende; je moet de koppeling wel nog gebruiken in een join.

Als je bijvoorbeeld deze twee tabellen hebt:

geleiders (
geleider_id
naam_geleider
)

honden (
hond_id
naam_hond
geleider_id
)

kun je zó de geleidersnaam bij elke hond tonen:

SELECT
naam_hond,
naam_geleider
FROM
honden
LEFT JOIN
geleiders
ON
honden.geleider_id = geleiders.geleider_id
ORDER BY
naam_hond ASC

dank je Ward,
ik heb de tabellen juist aangepast, maar nu heb ik nog een vraagje, die JOIN kan maar voor 1 tabel?
zoals hierboven, tussen hond en geleider, maar nu wil ik tussen status en geleider en tussen status en hond ook een JOIN, maar hoe doe je dat dan?
Ja, je kunt een JOIN op uiteenlopende manieren uitvoeren over meerdere tabellen. Je kunt bovendien een query binnen een query uitvoeren, zodat de resultaten van de hoofdquery worden beperkt tot resultaten uit een subquery.

Hoe ziet je datamodel er nu precies uit?
ik heb 4 tabellen
tabel users (idusers, user, password,idgeleiders)
tabel geleiders (idgeleiders, naam_geleider)
tabel hond (idhond, naam_hond, idgeleiders, groep)
tabel status (id, idusers,idgeleiders, idhond, status)

de bedoeling is dat ik gegevens uit de tabel status ga weergeven van de desbetrefende hond.
dus de naam van de hond, de naam van de geleider en de status

is dit voldoende informatie?
Kan één hond meerdere geleiders hebben? En kan omgekeerd één geleider meerdere honden hebben?

Uit tabel hond (idhond, naam_hond, idgeleiders, groep) leid ik af dat één hond één geleider heeft, anders hoort de foreign key idgeleiders niet in deze tabel.

Of wil je voor relatie tussen honden en geleiders de tabel status gebruiken?
de hond heeft maar één geleider, maar een geleider kan wel meerdere honden hebben.

de geleider logt in op de pagina en kan (als hij/zij meerdere honden heeft, een keuze maken uit de honden) dan zien wat de status van de trainingen met de bijbehorende hond is.

aan de hand van idusers haal ik dan de gegevens op die horen bij de geleider. (als deze meerdere honden heeft, zal er nog en keuze worden gemaakt uit de honden door middel van idhond)

als ik het goed zie kan ik idgeleiders weg laten uit de tabel status?
Ja, als één hond altijd één geleider heeft, kun je de status beperken tot de hond: via de hond vind je dan namelijk zijn geleider. Nadat de geleider heeft ingelogd (en dus zijn id bekend is), krijg je dan een eenvoudige JOIN tussen de tabel hond en de tabel status (met een WHERE waarin je de unieke idgeleiders gebruikt om de selectie te beperken).

Reageren