Gå til innhold

Velge data fra ulike tabeller til samme kolonner


Anbefalte innlegg

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
Videoannonse
Annonse

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
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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...