17. juli 2011 - 14:18Der er
5 kommentarer og 2 løsninger
Join med 3 tabeller
Hej
Jeg har 3 tabeller:
status_mes: id,text,subject,status
status_net: id,name,sub_id
status_mes_net: id,mes_id,net_id
Jeg søger en query hvor man hiver lige præcis det ud jeg skal bruge.
status_mes_net angiver blot hvilke status_net der er berørt af status_mes.
Jeg skal bruge alle rows fra status_mes, hvor status_net->name er "Byen". Ydermere kan hole status_net have sub_id der svarer til den der indeholder "Byen", de skal også vises.
Håber det er til at forstå? - Samt at nogen vil hjælpe mig..
Jeg går ud fra det er JOIN man skal bruge, men jeg er ikke 100% sikker, jeg har endnu ikke fundet en ordenlig dansk guide til hvordan man bruger den funktion. Og alle jeg har fundet, kan jeg ikke få til at give mening. Så måske det hjælpe hvis jeg ser hvordan det skal se ud, i et tilfælde hvor jeg rent faktisk selv skal bruge det ;)
lulalej, det er ikke helt klart hvad du vil. Du siger, at status_net kan have en sub_id. Betyder det, at sub_id er tom, er NULL, i nogle rækker? Hvis ja, så er du nødt til at bruge et 'conditional' udtryk, såsom IFNULL().
Jeg fik denne query til at virke i et lille test setop jeg lavede:
SELECT m.*, n.id AS net_id, IFNULL(n.sub_id, '') AS sub_id FROM status_net n JOIN status_mes_net mn ON n.id = mn.net_id JOIN status_mes m ON mn.mes_id = m.id WHERE n.name = 'Byen';
Hovsa, jeg så ikke arne_v's indlæg som han lavede mens jeg rodede med mit indlæg. Men vi synes at være enige, bortset fra, at jeg skærer det lidt mere ud i pap.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.