Jag har två tabeller teachers och classes. Dessa står i ett många-till-många-förhållande. Dvs varje
lärare kan vara inblandad i flera kurser och en kurs kan ha mer än en lärare. Har därför skapat en
mellantabell: teacherstoclasses. Att då ta reda på vilka lärare som ansvarar för en given kurs är
ju ingen konst. Inte heller att ta reda på vilka kurser en given lärare är inblandad i. Men hur
formulerar jag SQLen om jag vill lista de (om några) lärare som är inblandade i SAMTLIGA kurser.
SQL mot mellantabell
3 svar · 538 visningar · startad av Ola_M
Den här var knepig :)
Om vi antar att primärnyckeln i teacher heter "t_id" och att primärnyckeln i class heter "c_id", och att kolumnerna i kopplingstabellen heter samma sak som det de refererar till (dvs c_id och t_id) så kan det se ut så här:
SELECT * FROM teacher t WHERE NOT EXISTS (
SELECT * FROM class c WHERE NOT EXISTS (
SELECT * FROM teachertoclasses tc WHERE tc.t_id = t.t_id AND c.c_id = tc.c_id
)
);
------------------
God, root, what is difference? /Pitr
Tjusigt! Funkar! Tack!
Efter en stunds intensivt mediterande tycker jag mig till och med förstå varför den funkar.
Fast den känslan är ännu ganska flyktig;-)
Hehe... då ska vi inte prata om vilken tid det tog att hitta på den :)