webForumDet fria alternativet

Hämta olika fält från 2 tabeller i ett recset

Databaser & SQL

6 svar · 540 visningar · startad av pb81

Medlem sedan okt. 200688 inlägg
Frågan#1

Hejsan!
Jag har 2 tabeller där jag vill hämta ut information oberoende av varandra egentligen. Tabellerna innehåller inte samma fält, de har dock liknande funktioner.

Tabellerna har följande fält som ser lika ut: ID, Pris, Datum och Status.
Det är olika sökkriterier för båda tabellerna oxå, ena tabellen har jag ett par extra sökkriterier.

Hur gör jag lättast för att sammanfoga dessa 2 till ett recset?

Medlem sedan sep. 2006867 inlägg
#2

Man använder UNION

http://www.devguru.com/technologies/t-sql/7118.asp

Medlem sedan okt. 200688 inlägg
#3

Jo men då måste man väl hämta ut lika många fält från varje tabell?

Medlem sedan juni 200032 967 inlägg
#4

"Ja", och "Nej".
Dina UNION-delar måste se likadana ut, och "fälten" / värdena vara av jämförbara typer.

select fld1, fld2, fld3 from tabell1
union
select foo, null, null from tabell2
Medlem sedan okt. 200688 inlägg
#5

Ja det är ju det som är problemet.

Låt oss säga att sökningarna ser ut så här:

SELECT * FROM [Tabell1] WHERE Left(DateTime,10) >= '"& FromDate &"' AND Left(DateTime,10) <= '"& ToDate &"' AND ID = '"& Session("ID") &"'
SELECT * FROM [Tabell2] WHERE Left(DateTime,10) >= '"& FromDate &"' AND Left(DateTime,10) <= '"& ToDate &"' AND Managed = 1 AND Status = 1 AND ID = '"& Session("ID") &"'

Från tabell1 hämtar jag ut 5 fält och från tabell2 hämtar jag ut 9 fält

Medlem sedan juni 200032 967 inlägg
#6

Då får du ju se till så det är lika många "fält", enligt mitt exempel.

select *, null as fld6, null as fld7, null as fld8, null as fld9 from tbl1
union
select * from tbl2

Eller: måste du verkligen ha 9 fält från tabell2?
Specificera hellre alla fält du vill hämta, istället för att använda *.

Kom ihåg att det är den översta frågan i din union som bestämmer fältnamnen i det resulterande recordsetet.

Medlem sedan okt. 200688 inlägg
#7

Det löste mitt problem ;)

257 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)