webForumDet fria alternativet
Logga in / Bli medlem

select i select

Databaser & SQL

2 svar · 228 visningar · startad av daniel_ra

Medlem sedan jan. 2002381 inlägg
Trådstart#1

Nu har jag testat 100 gånger och får inte till det det handlar om en subquery

jag vill plocka ut närmsta, i tiden lediga datum.

Jag har en tabell som endast innehåller datum som är valbara. (tabell 1)

i en annan tabell har jag aktiviteter som är bokade vissa datum (tabell 2)

i båda tabellerna har jag ett datumfält.

Det jag vill göra är likt följande:

select min(datum) from tabell 1 where datum <> (select datum from tabell 2 where bokad = 1)

det fungerar ju sålänge som selecten från tabell 2 endast returnerar ett värde
men eftersom subfrågan returnerar flera datum så fungerar det ju inte

hur beter jag mig..? kan jag lösa det på liknande sätt eller kan jag göra på något annat sätt??

Medlem sedan jan. 2002381 inlägg
#2

hmm verkar som om jag inte skall använda <> mellan selectsatserna utan "not in" om en subquery innehåller fler träffar, rätta mig om jag har fel

Medlem sedan dec. 19996 721 inlägg
#3

daniel_ra skrev:

hmm verkar som om jag inte skall använda <> mellan selectsatserna utan "not in" om en subquery innehåller fler träffar, rätta mig om jag har fel

Det stämmer bra det!

Eller

select min(datum) from tabell1 t1 where not exists (select 1 from tabell2 t2 where t2.bokad = 1 and t1.datum=t2.datum)
271 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
135 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)