Har ett litet problem som någon föhoppningsvis kan hjälpa mig med.
Det jag försöker göra är att hämta info från två tabeller. Den ena visar aktuella nyheter och den andra visar (eller ska så småningom visa) de senaste nyheterna i kategoridelen.
Den selectsatsen som jag testar med är denna :
"SELECT DISTINCT s.ID,s.Actiontime,s.Heading,s.Shortreview,s.Fullreview,s.Author,d.depID,d.depHeading FROM tblSpotlight s, tblDepNews d ORDER BY s.ActionTime DESC"
Resultatet av denna är ju inte precis det som jag vill ha ;)
Den listar en massa dubletter. Dessa dubletter finns inte i databasen innan utan de kommer fram när man har med d.depID,d.depHeading i ovanstående kod.
Skulle någon vilja vära så vänlig och kicka in mig på vägen igen för det känns lite som om man är ute och cyklar i diket.
------------------
//Jonne, a beliver of murphys law
tja, du har ju inte joinat tabellerna på något sätt.
ex:
SELECT DISTINCT s.ID,s.Actiontime,s.Heading,s.Shortreview,s.Fullreview,s.Author,d.depID,d.depHeading FROM tblSpotlight s, tblDepNews d WHERE s.ID = d.depID ORDER BY s.ActionTime DESC
nu vet jag inte vad du har för fält att joina på, men förstår du?`
mvh,
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>
Hmm.. Trodde att man bra behövde använda join om man hade någon relation mellan tabellerna. Det har jag ju inte nu eftersom det inte finns något i de båda tabellerna som har någon nytta av att vara länkat (tror jag iaf).
Så om jag ska skriva så som du visade måste jag ha en relation mellan ID i båda tabellerna eller ?
------------------
//Jonne, a beliver of murphys law
Syftet är att som det ser ut idag så har jag en nyhets sida som listar de 4 senaste "spotlight" nyheterna (globala nyheter). Sen har jag olika sektioner med avdelnings nyheter.
Tänkte att jag skulle visa de senast inlaggda avdelnings nyheterna på samma sida som de globala nyheterna.
------------------
//Jonne, a beliver of murphys law
Det är nog en union du beöver. Den tar resulatet av 2 selectsatser och rensar bort alla duplikat.
SELECT ID, Actiontime as Atime, Heading, Shortreview, Fullreview, Author
FROM tblSpotlight
union
select id,timeColumn as Atime, Heading, ' ', ' ',' ' from tblDepNews ORDER BY Atime DESC
Det viktiga är att det är lika många kolumner i de båda selectsatserna och att de är av samma typ. Jag lade till konstanter för shorereview, fullreview och author för att det skulle matcha. Om du inte har någon tid-kolumn i tblDepNews får du göra på samma sätt där.
------------------ essentitia preter non sans multiplicandum
Dags att komma med en följdfråga:
Hur ska jag kunna hänvisa till de respektive fälten ? Alltså:
Jag vill skriva ut heading, actiontime, shortreview från tabellen tblSpotlight. Sen vill jag kunna skriva ut Actiontime och heading från tabellen tblDepNews.
Kolumnerna heter ju inte samma från början men när man använder union så tar tblSpotlight "över" kolumn namnen från tblDepNews.
Frågan är alltså hur jag ska kunna välja ut data från tblDepNews.
------------------
//Jonne, a beliver of murphys law
Det man kan göra är att man lägger till ett typfält i frågan.
SELECT ID, Actiontime as Atime, Heading, Shortreview, Fullreview, Author, 1 as newsType
FROM tblSpotlight
union
select id,Actiontime as Atime, Heading, ' ', ' ',' ',2 as newsType from tblDepNews ORDER BY Atime DESC
Sen i din ASP-kod kan du göra följande:
if RS("newsType") = 1 then
'skriv de kolumner som gäller tblSpotlight
else
'skriv de kolumner som gäller tblDepNews
end if
------------------ essentitia preter non sans multiplicandum