Avatar billede Slettet bruger
16. april 2006 - 16:03 Der er 15 kommentarer og
1 løsning

Selecte flere tabeller?

hey eksperter..

Hvordan får jeg serveren eller computeren til at Selecte 2 tabeller på en gang ?

Altså: Select alle fra Tabel1 og Tabel2 hvor ID = 2

Det skal bare lige oversættes :P
Avatar billede michael_stim Ekspert
16. april 2006 - 16:05 #1
SELECT * FROM table1 t1, table2 t2 WHERE t1.id=t2.id
Avatar billede duejensen Nybegynder
16. april 2006 - 16:05 #2
Du mener sikkert noget i stil med

select * from tabel1 where id = 2
union
select * from tabel2 where id = 2

-
Eller ønsker du at kombinere de 2 tabeller ?
Avatar billede michael_stim Ekspert
16. april 2006 - 16:07 #3
Bruger du union skal tabellerne väre identiske.
Avatar billede duejensen Nybegynder
16. april 2006 - 16:07 #4
ok, du fik 2 kommentarer- jeg var lidt usikker på om det var det ene du ønskede eller det andet
Avatar billede Slettet bruger
16. april 2006 - 16:14 #5
Altså.. Jeg har et forum hvor jeg har en tabel til hver kategori.
Og nu skal jeg så have lavet et Recordset (rs) hvor alle kategorier er listet eller alle spørgsmål ?

Derfor skal jeg så have et rs som indeholder alle fra tabel1 hvor ID = 2 og alle fra tabel 2 hvor ID = 2
Avatar billede duejensen Nybegynder
16. april 2006 - 16:16 #6
Det lyder som om jeg gættede rigtigt.
Er de to tabeller ens i struktur, blot således at den ene indeholder data om en kategori, og den ene indeholder data om en anden kategori

Hvis jeg gætter rigtigt, så bør mit forslag løse dit problem.
Avatar billede Slettet bruger
16. april 2006 - 16:20 #7
Ja det tror jeg også at det gør. Fordi strukturmæssigt er de identiske.. Jeg prøver lige :P
Avatar billede Slettet bruger
16. april 2006 - 16:25 #8
Så får jeg denne fejl:

Error Type:
ADODB.Recordset.1 (0x80004005)
SQLState: 4 Native Error Code: 1054 [TCX][MyODBC]Unknown column 'Spoergsmaal' in 'where clause'

----------------------------------------

strSQL = "select * from Forumtuning where Status = Spoergsmaal union select * from Forumgenerelscootersnak where Status = Spoergsmaal"

Forumtuning og Forumgenerelscootersnak er de 2 kategorier jeg eksperimentere med.
Og de har hver en kolonne som hedder Status, Status kan enten være Spoergsmaal eller Indlaeg.
Avatar billede michael_stim Ekspert
16. april 2006 - 16:26 #9
strSQL = "select * from Forumtuning where Status = 'Spoergsmaal' union select * from Forumgenerelscootersnak where Status = 'Spoergsmaal'"
Avatar billede Slettet bruger
16. april 2006 - 16:40 #10
Okay takker det virker..
Men hvis jeg så skriver den sådan:

select * from Forumtuning where Status = 'Spoergsmaal' union select * from Forumgenerelscootersnak where Status = 'Spoergsmaal' ORDER BY Skrevetden Limit 0,5

Skrevetden er datoen hvor den er oprettet. Sotére den så begge tabeller eller hvad man skal sige. Blander den tabellerne så ?
Avatar billede erikjacobsen Ekspert
16. april 2006 - 16:56 #11
Når du nu får det til at virke, så bruge lige 2½ minut på at tænke på om du har lavet den bedste løsning rent databasemæssigt. Det vil på mange måde være en bedre løsning at have een tabel til alle dine fora, og så i et felt ekstra angive hvilket forum det er. Det er mere effektivt, for det er faktisk dyrt at åbne mange tabeller, og det er nemmere at udvide den dag du vil have et forum mere, "pigerpaaknallerter". Bare et forslag...
Avatar billede Slettet bruger
16. april 2006 - 16:58 #12
Ja det har du helt ret i og den tanke har også strejset mig mange gange! Men den tabel bliver bare enorm så. Fordi at alt hvad der bliver skrevet i forumet bliver listet i den tabel. ??.
Avatar billede erikjacobsen Ekspert
16. april 2006 - 18:03 #13
Og hvad så - alle databasesystemer kan klare store tabeller. Man sætter så et index på det, der søges efter.
Avatar billede duejensen Nybegynder
16. april 2006 - 18:17 #14
Enig i at tabellens størrelse ikke bør være et problem, og at du bør samle de to tabeller i en samlet tabel.

Hvis du (hvad der nok er det nemmeste her og nu) bliver ved med at have to tabeller, skal du have paranteres omkring de to selects, for at få ORDER BY og LIMIT til at fungere efter hensigten:

altså


(select * from Forumtuning where Status = 'Spoergsmaal')
union
(select * from Forumgenerelscootersnak where Status = 'Spoergsmaal')
ORDER BY Skrevetden Limit 0,5

så skal ORDER BY og LIMIT fungere på det samlede resultat.
Avatar billede Slettet bruger
12. november 2006 - 23:10 #15
Mange tak. Sorry jeg er sent med det .. Smid svar =)
Avatar billede Slettet bruger
15. januar 2008 - 11:51 #16
Intet svar.. Lukker.
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
Computerworld tilbyder specialiserede kurser i database-management

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