Goedenavond allen,

ik heb de volgende tabellen in een database:

table vragen
----------------
vraag_id
antwoord_1
competentie1_id
antwoord_2
competentie2_id
antwoord_3
competentie3_id

table competenties
--------------------
competentie_id
competentie_naam


Is het nu mogelijk een query te doen op deze tables waarbij ik alle vragen met hun antwoorden terugkrijg en daarbij de naam van de competentie die bij ieder antwoord hoort (aan de hand van het competentie_id ?

Hopelijk is mijn vraag dudelijk en kan iemand me helpen!

Bedankt,

//k
Je structuur klopt niet helemaal. Je hebt een tabel met vragen maar per record heb je 3 vragen en daaraan 3 competentie namen.

Om terug te komen op je vraag:

SELECT *
FROM vragen
LEFT JOIN competenties
ON (competentie_id IN(competentie1_id,competentie2_id, competentie3_id))


Ik heb niet zo van de JOIN,s dus dit kan nog best wel eens verkeerd zijn.
Hey Martijn,

Dank voor je antwoord!

Het zit zo:

een vraag bestaat uit 3 antwoordmogelijkheden (multiple choice ) en ieder van die antwoorden ivertegenwoordigd een competentie.....en die competenties staan dus in een andere tabel....

jouw code doet wel iets, maar ik krijg in mijn resultaat nog niet van ieder antwoord de bijbehorende competentie_naam te zien....

//k
Ik mis nog een vraagtekst in je tabel 'vragen'. Klopt dat?
Het datamodel is niet goed, ga eerst normaliseren (zie de tutorails). Dit voorkomt een hoop problemen en maakt de queries een stuk eenvoudiger.

ik besef nu dat de tabel moet worden:

table vraag
----------------
vraag_id
antwoord
competencie_id

en dan kan ik hem makkelijker linken aan de competentie_tabel

En Jan, dank voor je meedenken, maar in dit geval is een vraagtekst niet nodig...de vraag is namelijk altijd hetzelfde en mensen meoten steeeds uit 4 verschillende antwoorden kiezen!

Bedankt voor jullie hulp!

Reageren