Har idag en SQL för att leta upp alla datum en viss dag som användaren har access till genom att vara medlem i olika grupper.
SELECT *, day(date) as dag FROM T_datum WHERE parent_namn_id in (SELECT id FROM T_name WHERE group_id LIKE 234 OR group_id LIKE 345) AND datum='20100219' ORDER BY dag
Vill nu ha tag i owner_id för att avgöra vem som äger adressen, men hur gör jag då ?
select
t.*,
n.owner_id,
day(date) as dag
from
t_datum d inner join t_name n
on
d.parent_namn_id = n.id and
n.groupid in (234,345) and
t.datum = '20100219'
order by
dag
Peter S - Var så glad när jag slapp join (detta då jag har svårt att greppa det) och kunde använda "in", men om det är enda sättet så....
Ska prova och återkomma med resultatet.
Peter S - Var så glad när jag slapp join (detta då jag har svårt att greppa det) och kunde använda "in", men om det är enda sättet så....
Vad är det du inte greppar med joins? Om du inte redan har läst artikeln nedan, läs igenom den och se om det fastnar bättre. Själv tycker jag att det mesta blir mycket enklare att förstå om man får något grafiskt att koppla till.
T och n är alias för tabellerna som gör att man slipper skriva ut tabellnamnen varje gång man refererar till fälten. (Om ett fält F bara finns i en av tabellerna behöver man inte kvalificera fältet med tabellnamnet för att referera till det: tabell.F. Dock blir det tydligare att läsa koden om man talar om vilken tabell ett fält hör till.)
select
d.*,
n.owner_id,
day(d.datum) as dag
from
t_datum d inner join t_name n
on
d.parent_namn_id = n.id and
n.groupid in (234,345) and
d.datum = '20100219'
order by
dag
Vi tar det från början, jag tror jag lurar mig själv.
d är alias för t_datum
n är alias för t_name
så långt är jag med, men var skapas t. t används ju bara plötsligt ? (eller är det när man skriver t.* som t blir namnet på den "sammanslagna" tabellen av d och n?)
Nu blev det lite förvirrat... Detta har hänt i ungefärlig kronologisk ordning:
Peter S skriver ett inlägg med ett mystiskt t.
Mr T skriver fel bokstav och undrar vad d är, när han menar t.
nitro2k01 missuppfattar frågan, missar Peters kodfel och svarar i all välmening att d är ett alias.
Peter S korrigerar sitt föregående inlägg och byter ut t mot d
Mr T undrar vad som står på.
Farbror najtro förklarar.