webForumDet fria alternativet

Why oh why ??

ASP

9 svar · 242 visningar · startad av jonne

Medlem sedan jan. 20011 154 inlägg
Frågan#1

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

Medlem sedan juni 200032 967 inlägg
#2

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>

Medlem sedan jan. 20011 154 inlägg
#3

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

Medlem sedan juni 200032 967 inlägg
#4

japp, annars blir det ett jäkla härke av datat eftersom varje rad i den ena tabellen slängs ihop med varje rad i den andra.

vad är syftet med det hela? ett fall för union kanske?

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

Medlem sedan jan. 20011 154 inlägg
#5

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

Medlem sedan dec. 200012 464 inlägg
#6

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

[Redigerat av LarsG den 05 mar 2001]

Medlem sedan jan. 20011 154 inlägg
#7

Aha. Nu börjar det klarna lite. Ska ta och testa union så får vi se vad som händer.

Får passa på att tacka för extremt snabba svar.
Det är av denna enkla orsak man väljer wF när man har ett problem som kräver snabb lösning ;)

------------------
//Jonne, a beliver of murphys law

Medlem sedan jan. 20011 154 inlägg
#8

Ok nu har det börjat hända lite saker :)

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

Medlem sedan dec. 200012 464 inlägg
#9

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

Medlem sedan jan. 20011 154 inlägg
#10

Tackar så hemskt mycket. Fungerar som det ska nu..äntligen :)

------------------
//Jonne, a beliver of murphys law

256 ms totalt · 3 externa anrop · v20260731065814-full.767b4345
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)