tronezMedlem sedan juli 2001728 inlägg Hej,
Försöker göra ett litet nyhetsscript i asp, men har fastnat på en SQL sak.
tabell nyheter
id| rubrik | ingress | nyhet | start
tabell nyheter_bilder
id | nyhet_id | url |
Varje nyhet kan ha flera bilder kopplade till sig, men när jag visar alla nyheter i ett arkiv sp vill jag bara visa en bild.
tex;
Rubrik1 ------------ bild
Rubrik2 ------------ bild
SELECT n.rubrik, n.ingress, n.id as iid, n.start, d.url
FROM nyheter AS n
LEFT JOIN nyheter_bilder as d
ON n.id = d.nyhet_id
GROUP BY d.url, n.id, n.rubrik, n.ingress, n.start
ORDER BY n.start DESC
Ovan är koden jag pulade fram men den skriver fortfarande ut alla poster som har fler än en bild
tex;
Rubrik1 ----- bild1
Rubrik1 ----- bild2
Rubrik1 ----- bild3
Rubrik2 ----- bild1
Någon som ser något som kan hjälpa mig på vägen?
LarsGMedlem sedan dec. 200012 464 inlägg Om det finns flera bilder, vilken vill du visa då?
tronezMedlem sedan juli 2001728 inlägg Den första räcker gott och väl. Det är en Accessdatabas omdet ar nån betydelse
LarsGMedlem sedan dec. 200012 464 inlägg Först med avseende på vad?
tronezMedlem sedan juli 2001728 inlägg Första id:et i nyheter_bilder tabellen ( inte nyhet_id , utan id )
LarsGMedlem sedan dec. 200012 464 inlägg Du menar lägst id?
SELECT n.rubrik, n.ingress, n.id as iid, n.start, d.url
FROM nyheter AS n
LEFT JOIN nyheter_bilder as d
ON n.id = d.nyhet_id
where d.id in
(select min(id)
from nyheter_bilder as q
where q.nyhet_id = d.nyhet_id)
ORDER BY n.start DESC
Du skall inte förutsätta att poster lagras i den ordning som dom stoppas in i tabellen.
tronezMedlem sedan juli 2001728 inlägg
LarsG skrev:
Du menar lägst id?
SELECT n.rubrik, n.ingress, n.id as iid, n.start, d.url
FROM nyheter AS n
LEFT JOIN nyheter_bilder as d
ON n.id = d.nyhet_id
where d.id in
(select min(id)
from nyheter_bilder as q
where q.nyhet_id = d.nyhet_id)
ORDER BY n.start DESC
Du skall inte förutsätta att poster lagras i den ordning som dom stoppas in i tabellen.
Den funkar ungefär som jag vill, men jag vill dock visa alla nyheter, öven de som inte har någon bild
LarsGMedlem sedan dec. 200012 464 inlägg SELECT n.rubrik, n.ingress, n.id as iid, n.start, d.url
FROM nyheter AS n
LEFT JOIN nyheter_bilder as d
ON (n.id = d.nyhet_id
and d.id in
(select min(id)
from nyheter_bilder as q
where q.nyhet_id = d.nyhet_id))
ORDER BY n.start DESC
tronezMedlem sedan juli 2001728 inlägg
LarsG skrev:
SELECT n.rubrik, n.ingress, n.id as iid, n.start, d.url
FROM nyheter AS n
LEFT JOIN nyheter_bilder as d
ON (n.id = d.nyhet_id
and d.id in
(select min(id)
from nyheter_bilder as q
where q.nyhet_id = d.nyhet_id))
ORDER BY n.start DESC
Syntax error. in query expression 'n.id = d.nyhet_id and d.id in (select min(id) from nyheter_bilder as q where q.nyhet_id = d.nyhet_id)'.