Just nu i M3-nätverket
Jump to content

Hämta data från två tabeller i samma databas?


Adam Gustafsson

Recommended Posts

Adam Gustafsson

Tjo!

 

Kan man i en och samma SQL-sats efterlysa data från två olika tabeller i samma databas (i Access)?

 

Jag har en tabell med filmer och en med tv-serier och skulle vid vissa tillfällen hämta data ur båda, en sökning är väl med mest basala exemplet, och visa upp.

 

/Adam

 

Link to comment
Share on other sites

Adam Gustafsson

Topp!

 

Ska kolla upp det och testa det ikväll.

 

/Adam

 

Link to comment
Share on other sites

Adam Gustafsson

Ok, har kollat på det och har stött på problem.

 

UNION funkade jättebra om jag har två tabeller som är uppbyggda på exakt samma sätt, med (vad jag har förstått) samma fältnamn och samma typ. (Jag fick dock använda UNION ALL när jag skulle söka igenom en massa fält.)

 

MEN... nu har jag två tabeller som är uppbyggda på lite olika sätt, de har inte exakt samma struktur. Vad ska jag använda då? Kollade lite på JOIN, men det verkar inte riktigt vara det jag ska ha heller... Hjälp!

 

/Adam

 

Link to comment
Share on other sites

DanielForPresident

Men du vill fortfarande ha dem i samma recordset? Är det inte enklare att returnera två olika recordset i så fall?

 

Nåväl- OM du vill ha dem i samma recordset får du nog försöka tweaka lite och antingen använda UNION och välja ut fält i SELECTen som är av samma typ eller skapa en temp tabell med SQL, fylla den med info och sen göra en select från den tabellen. Detta bör du dock skriva en Stored Procedure för, blir lite rörigt annars. Då skapar du tabellen tillfälligt i SPn och dumpas lika fort när den använts klart. Är dock lite osäker på hur det här fungerar i Access... var ett tag sedan sist :)

 

[inlägget ändrat 2006-05-03 11:41:58 av DanielForPresident]

Link to comment
Share on other sites

Anjuna Moon

Än en gång är jag efter Daniel =) men jag håller med om att du bör hämta dem i två separata frågor (alternativt med en SP som returnerar multipla recordsets, vet dock inte om detta fungerar i Access).

 

Om datan är helt orelaterad så är det inte snyggt att hämta dem i samma query. Läsbar och förståelig kod är mycket viktigare än en eller två insparade millisekunder på att gröta ihop kod och databasanrop.

 

Link to comment
Share on other sites

DanielForPresident

Kan tilllägga en sak till eftersom du ska söka på innehållet i flera tabeller samtidigt :)

 

Ibland när man har många olika tabeller man vill söka i på samma gång kan det vara en idé om man skapar en separat tabell som man enbart använder för sökningen. Du migrerar info från alla de andra tabellerna till tabellen för sökning med antingen någon SP, triggers eller liknande. Det blir visserligen redundant data men du vinner på att bara behöva söka i en tabell. Kör du dessutom ex. SQL Server eller liknande är det lättare att opimera index för sökning på en tabell än en hel drös.

 

Kanske lite överkurs men i alla fall :)

 

 

Link to comment
Share on other sites

Adam Gustafsson

Tack för svaren, jag fegar ur och gör om min databas så både film och TV finns i samma. Sedan fixar jag (förhoppningsvis) resten med mååånga if-satser. Era lösningar känns lite väl avancerade för min lilla hemsida...

 

Poäng delar jag ut i alla fall. La Suède - trois point!

 

/Adam

 

[inlägget ändrat 2006-05-03 21:34:00 av Adam Evertsson]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...