Ekko Skrevet 24. januar 2007 Del Skrevet 24. januar 2007 Ikke lett å komme med en grei emnetittel til mitt problem, men lurer på omfølgende kan gjøres i mysql uten mellomlagring i en annen tabell: Jeg har 2 tabeller: Table A +----------+---------+ | Field | Type | +----------+---------+ | Dato | date | | frakl | time | | tilkl | time | +----------+-------- Table B +-------------+---------+ | Field | Type | +-------------+---------+ | dato | date | | tid | time | +-------------+---------+ Jeg ønsker å gjøre en select som gir meg en som svar tabell med 2 kolonner, dato og tid. Svaret skal være sammenslåingen av følgende 3 spørringer: SELECT dato AS Dato, frakl AS Tid FROM A; SELECT dato AS Dato, tilkl AS Tid FROM A; SELECT dato AS Dato, tid AS Tid FROM B; De tre spørringene over vil gi 3 like tabeller atributtmessig. Jeg ønsker at svaret skal være disse tre tabellene "limt" sammen. Går dette an å gjøre uten mellomlagring i en annen tabell? Lenke til kommentar
kaffenils Skrevet 24. januar 2007 Del Skrevet 24. januar 2007 Du kan bruke UNION/UNION ALL: Forskjellen på UNION on UNION ALL er at UNION kun returnerer unike rader, dvs. hvis noen av de tre spørringene returnere rader med samme dato og tid så vil disse radene bli slått sammen til en. UNION ALL vil returnere dem som separate rader. SELECT dato AS Dato, frakl AS Tid FROM A UNION SELECT dato AS Dato, tilkl AS Tid FROM A UNION SELECT dato AS Dato, tid AS Tid FROM B Lenke til kommentar
roac Skrevet 24. januar 2007 Del Skrevet 24. januar 2007 Forskjellen på UNION on UNION ALL er at UNION kun returnerer unike rader, dvs.hvis noen av de tre spørringene returnere rader med samme dato og tid så vil disse radene bli slått sammen til en. UNION ALL vil returnere dem som separate rader. 7786861[/snapback] Det sier seg kanskje selv, men kan ikke nevnes for ofte: Hvis du vet at ingen rader eksisterer i flere tabeller skal du ALLTID bruke union all, for da slipper databaseserveren å sammenligne. Det går mye raskere. Lenke til kommentar
Ekko Skrevet 24. januar 2007 Forfatter Del Skrevet 24. januar 2007 Takk for svar. Alltid kjekt å lære noe nytt. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå