webForumDet fria alternativet

problem med följande sql-fråga

2 svar · 252 visningar · startad av jme

jmeMedlem sedan maj 20012 237 inlägg
#1

Hej.

Jag har tre tabeller:

evenemang:
-evenemang_id

avdelning:
-avdelning_id
-evenemang_id pekar mot evenemang.evenemang_id

bokningar:
-id
-evenemang_id pekar mto evenemang.evenemang_id
-avdelning_id pekar mot avdelning.avdelning_id

Hur får jag ut alla de poster från tabellen evenemang som har MINST EN avdelning och som också måste vara ledig? Avdelningen är ledig om den inte finns inlaggd i tabellen bokningar (eller den får finnas i tabellen bokningar men då i en annan sammanhang).

T ex:

Evenemang 1 (med evenemang_id ev1) har två avdelningar:
- avd1
- avd2

Evenemang 2 (evd2) har:
-avd3

I tabellen bokningar finns följande post:

post #1
id : bok1
evenemang_id = ev1
avdelning_id = avd2

post #2:
id: bok2
evenemang_id = ev2
avdelning_id = avd3

Det betyder alltså att Evenemang 1 skall visas då den ännu har avd1 ledigt.
Evenemang 2 skall inte visas även om DEN HAR en avdelning MEN den är redan bokad och den har bara en avdelning.

Jag har stora problem med denna sql-fråga. Vore enormt tacksam för lite vägledning och ljus. :)

yohpopsMedlem sedan feb. 20011 198 inlägg
#2
select * from evenemang where evenemang_id in 
(select evenemang_id from avdelning where avdelning_id not in
(select distinct avdelning_id from bokningar))

kanske?

jmeMedlem sedan maj 20012 237 inlägg
#3

Kom själv på nästan samma lösning som du! :)

Jobbigt att det ska vara så svårt att lista ut. Det där var ju inte SÅ klurigt. :|

Måste dock ha med evenemang_id i subqueryn då en avdelning måste länka ihop med en viss evenemang. Med din query så får jag 0 returnerade poster.

Med följande

select * from evenemang where evenemang_id in 
(select evenemang_id from avdelning where avdelning_id not in
(select distinct avdelning_id from bokningar where evenemang.evenemang_id = bokningar.evenemang_id) )

så verkar det fungera. Stort tack för hjälpen! :)

126 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)