select i select

Databaser & SQL

2 svar · 240 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)
268 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)