Avatar billede kapoou Nybegynder
23. maj 2005 - 11:38 Der er 18 kommentarer og
1 løsning

Hvilken tabel kommer data fra

Jeg har en oversigt hvor data kommer fra 2 forskellige tabeller.

Den ene tabel indeholder nyheder mens den anden indeholder nyhedsbreve.

Jeg skal dog i denne oversigt illustrere hvilken tabel dataen kommer fra. Hvordan kan jeg i min kode finde ud af om dataen kommer fra tabel1 eller tabel2.
Avatar billede busschou Praktikant
23. maj 2005 - 13:01 #1
du har vel to forskelle sql sætninger mm?
sql1 = "select * from tabel1"
sql2 = "select * from tabel2"
set rs1 = conn.execute(sql1)
set rs2 = conn.execute(sql2)
response.write "dette er fra tabel1 "&rs1("ditfelt")
response.write "dette er fra tabel2 "&rs2("ditfelt")
Avatar billede kapoou Nybegynder
23. maj 2005 - 13:10 #2
nej jeg har forsøgt at køre den ind i en Inner Join, hvilket jeg også tror fungere som det skal. Problemet er bare at kolonnen hvor overskriften på henholdsvis nyhederne og nyhedsbrevene ikke hedder det samme derfor vil jeg gerne vide hvilken tabel dataen hentes ud fra.
Avatar billede busschou Praktikant
23. maj 2005 - 15:03 #3
hvordan ser din sql ud?
Den eneste måde du kan gøre det på så må være at rette kolonne navnene så du kan se hvad der er fra hvilken tabel.
Når du først har hivet data ud i et resultset så har du jo så at sige en ny resultat tabel. Men den indeholder ikke indformation om hvor data stammer fra. Det eneste som identificerer data i resultsettet er kolonne navnene
Avatar billede kapoou Nybegynder
23. maj 2005 - 15:13 #4
jeg har en kolonne i den ene tabel som ikke finde i den anden. Derfor har jeg lavet følgende

    for each felt in rs1.Fields
    fundet = "falseX"
          if felt.Name = "kategori" then
            fundet = "trueX"
            Exit for
          end if
    Next

men det funger ikke helt. den er true hver gang!
Avatar billede busschou Praktikant
23. maj 2005 - 15:32 #5
nå jo men hvis du laver en join så vil alle rækker i din rs vel indeholde kolonnen "kategori".. en join samler jo de to tabeller til een
Avatar billede kapoou Nybegynder
23. maj 2005 - 15:33 #6
ja det er jo lige det. det fandt jeg så ud af:) men hvordan kan jeg så gøre det?
Avatar billede nielle Nybegynder
23. maj 2005 - 18:54 #7
Hvorfor bruger du inner join? Hvis den ene tabel indeholder nyhedsbreve og den anden indeholder nyheder er der vel ikke noget naturligt id at joine dem omkring?!

Er der ikke snarere tale om at du ønsker at kombinere indholdet af de to tabeller til en samlet tabel? Det lyder mere som en union for mig:

Hvis dette er rigtigt så kunne du opnå den ønskede effekt på denne måde:

SQL = "(SELECT Titel, Tekst, 'tabel1' AS KildeTabel FROM tabel1) UNION (SELECT Titel, Tekst, 'tabel2' AS KildeTabel FROM tabel2)"
Avatar billede kapoou Nybegynder
24. maj 2005 - 09:31 #8
Ok. hvis min tabeller hedder nyheder og nyhedsbrev men de felter som skal hentes ud ikke hedder det samme hvordan skal jeg så gøre. Når det f.eks. er nyhedsberevet der skal skrives så ligger "overskriften" i en kolonne der hedder emne og når det er fra nyhederne så hedder tabellen, overskrift.
Avatar billede busschou Praktikant
24. maj 2005 - 09:37 #9
så kan du jo bare tjekke om der står noget i feltet
For hvis der står noget i emne står der vel ikke noget i overskriften og vice versa
--
if rs("emne") = "" then
  response.write "her er intet emne så dette kommer fra 'nyhederne'" &rs("overskrift")
else
  response.write "her er der et emne så dette kommer fra 'nyhedsbrevet'" &rs("emne")
end if
Avatar billede kapoou Nybegynder
24. maj 2005 - 09:47 #10
nielle det funger perfekt! hvad hvis jeg så vil lave en samlet sortering på ID?
Avatar billede nielle Nybegynder
24. maj 2005 - 17:38 #11
24/05-2005 09:31:36> Du skal bruge AS til at lave et alias i dette tilfælde:

SELECT Emne AS Overskrift, Tekst, 'FraNyhedsbrev' AS KildeTabel FROM Nyhedsbrev

24/05-2005 09:47:54> Det bliver et rent gæt, men prøv med:

SQL = "SELECT * FROM (SELECT ID, Titel, Tekst, 'tabel1' AS KildeTabel FROM tabel1) UNION (SELECT ID, Titel, Tekst, 'tabel2' AS KildeTabel FROM tabel2) ORDER BY ID"
Avatar billede nielle Nybegynder
24. maj 2005 - 17:45 #12
busschou> Den dur vist desværre ikke. For at UNION overhovedet skal fungere, skal de to subselects - så vidt jeg ved - give samme type output. Derunder også samme søjlenavne. Hvis søjlerne hedder noget forskelligt kan man heldigvis bruge AS til "omdøbe" dem.
Avatar billede busschou Praktikant
24. maj 2005 - 17:53 #13
nielle >> det er jeg med på .. henviste heller ikke specifikt til din union ;o)
Avatar billede nielle Nybegynder
24. maj 2005 - 18:01 #14
Ok, så undskylder jeg aller ydmygst :^)
Avatar billede nielle Nybegynder
27. maj 2005 - 18:03 #15
kapoou> Har du fået kigget på det sidste endnu?
Avatar billede nielle Nybegynder
15. juni 2005 - 16:44 #16
Et svar.
Avatar billede nielle Nybegynder
24. juni 2005 - 18:18 #17
Lukketid?
Avatar billede kapoou Nybegynder
27. juni 2005 - 16:30 #18
Yep. sorry :) Mange tak for hjælpen!
Avatar billede nielle Nybegynder
27. juni 2005 - 17:50 #19
Eksperten.dk har jo faktisk heller ikke udsendt en eneste email i over 3 uger, så jeg forstår sagtens at det kan være svært at holde sig opdateret. :^|
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester