webForumDet fria alternativet

sql, flera tabeller, samma id, finns kanske inte

Databaser & SQL

4 svar · 278 visningar · startad av JonasG

Medlem sedan mars 2001148 inlägg
Frågan#1

hej!

jag ett problem.

gäller ett bokningssystem där vi har "temporära" tabeller som bara används under det att en bokning görs (puckat system men jag har inte tid att bygga om just nu).

bara en tabell har samtliga bokningar. med "id" som är räknare.

finns 5 temporära tabeller som har kolumnen "bokning" vilket är samma som "id" i huvudtabellen.

nu vill jag ha en sql-sats som plockar från alla dessa tabeller.
problemet är att i de temporära tabellerna kan det i vissa fall saknas "gemensam" post. i många fall avbryts en bokning innan den är genomförd.

sql-satsen skall ändå plocka allt den får tag i. från övriga tabeller.

hur? bitte.

Medlem sedan dec. 200012 464 inlägg
#2

Har du ett visst id som du utgår ifrån? Vilken DBMS gäller detta?

select maintable.*, t1.*,t2.*,t3.*,t4.*,t5.*
 from maintable left outer join t1 on id = t1.bokning
 left outer join t2 on t1.bokning = t2.bokning
 left outer join t3 on t2.bokning = t3.bokning
 left outer join t4 on t3.bokning = t4.bokning
 left outer join t5 on t4.bokning = t5.bokning

Kan behöva förändras beroende på dbms.

Flyttas från ASP.

Medlem sedan mars 2001148 inlägg
#3

tack.

har fixat lite gran men inte lyckats.

så här ser tabellerna ut.

från tabellen "bokningar" skall "id" plockas
från "t1" skall "id" plockas där "bokning" = "bokningar.id"
---
från "t6" skall "id" plockas där "bokning" = "bokningar.id"

i många fall kanske det inte finns något i t ex tabellerna t4 och t5, men från övriga tabeller skall ändå plockas.

de gäller asp med VBScript och access 2000-databas.

Medlem sedan jan. 20032 285 inlägg
#4

Kanske detta?

SELECT b.id, t1.id, t2.id, t3.id, t4.id, t5.id, t6.id
FROM bokningar b, t1, t2, t3, t4, t5, t6
WHERE t1.bokning = b.id
AND t2.bokning = b.id
AND t3.bokning = b.id
AND t4.bokning = b.id
AND t5.bokning = b.id
AND t6.bokning = b.id
Medlem sedan mars 2001148 inlägg
#5

men då tar den ju bara med de där t1 - t6 har med matchande poster?
ibland finns kanske inte matchande post i t3, men alla andra tabeller skall ändå tas med

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