Avatar billede ducks Nybegynder
17. oktober 2003 - 17:42 Der er 3 kommentarer og
1 løsning

Hente info fra flere tabeller i database

Hvis man ønsker at hente info fra flere tabeller ved fx en søgning og få det hele ud i orden efter id (højeste først), hvordan gøres det så?

Set RS = Server.CreateObject("ADODB.Recordset")
SQL = "Select * FROM tekster where tekst like'%"& Request.Form("sogeord") &"%' order by id desc"
SQL = "Select * FROM tekster where titel like'%"& Request.Form("sogeord") &"%' order by id desc"
SQL = "Select * FROM forum where type<>'admin' and tekst like'%"& Request.Form("sogeord") &"%' order by id desc"
SQL = "Select * FROM forum where type<>'admin' and titel like'%"& Request.Form("sogeord") &"%' order by id desc"
RS.Open SQL, Conn, 3, 3

Går vel ikke? Gerne hele SQL koden, da jeg ik er helt med på at lave den slags indviklede kombinationer.
Avatar billede eagleeye Praktikant
17. oktober 2003 - 18:13 #1
Hvis du vil havde de to tabeller (tekster,forum) data "blandet" sammen skal du lave en UNION som kan ligge tabeller sammen. Eller må du lave det med to opslag en for hver tabel.


Eksvis kan disse to:
SQL = "Select * FROM tekster where tekst like'%"& Request.Form("sogeord") &"%' order by id desc"
SQL = "Select * FROM tekster where titel like'%"& Request.Form("sogeord") &"%' order by id desc"


Slåes sammen  til:

SQL = "Select * FROM tekster where tekst like'%"& Request.Form("sogeord") &"%' AND titel like'%"& Request.Form("sogeord") &"%' order by id desc"


Samt disse to:
SQL = "Select * FROM forum where type<>'admin' and tekst like'%"& Request.Form("sogeord") &"%' order by id desc"
SQL = "Select * FROM forum where type<>'admin' and titel like'%"& Request.Form("sogeord") &"%' order by id desc"

Til denne:
SQL = "Select * FROM forum where type<>'admin' and tekst like'%"& Request.Form("sogeord") &"%' and titel like'%"& Request.Form("sogeord") &"%' order by id desc"
Avatar billede ducks Nybegynder
17. oktober 2003 - 18:34 #2
SQL = "Select * FROM forum where type<>'admin' and tekst like'%"& Request.Form("sogeord") &"%' and titel like'%"& Request.Form("sogeord") &"%' order by id desc"

Den vælger da kun fra en tabel?
Avatar billede ducks Nybegynder
17. oktober 2003 - 18:40 #3
Hvordan laver man sådan en UNION?
Avatar billede eagleeye Praktikant
17. oktober 2003 - 19:11 #4
Du kan skrive flere tabeller på de bliver JOIN'et når man skriver eksvis  FROM tabel1, tabel2
men det da gøres.

UNION ligger tabeller under hinanden så det er en lang tabel. Dog skal man give kolonnerne nogle aliaser så de har samme navn i hver SQL og lige mange kolonne den hendter fra hver tabel.

Eks på SQL med union:
SQL = "SELECT TOP 5 * FROM (SELECT tbl1.navn, tbl1.dato_s as Dato FROM tbl1 UNION ALL SELECT tbl2.navn, tbl2.dato_p as Dato FROM tbl2) ORDER BY dato DESC;"


De 2 før viste SQL'er skrevet til en UNION SQL:

SQL = "Select * FROM (SELECT tekster.titel, tekster.tekst, tekster.id FROM telster where tekst.tekst like'%"& Request.Form("sogeord") &"%' AND tekst.titel like'%"& Request.Form("sogeord") &"%' "
SQL = SQL & " UNION ALL SELECT forum.titel, forum.tekst, forum.id FROM forum where forum.type<>'admin' and forum.tekst like'%"& Request.Form("sogeord") &"%' and forum.titel like'%"& Request.Form("sogeord") &"%') order by id desc"
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