Sök…


EXISTSKLUS

Kundtabell

Id Förnamn Efternamn
1 Özgür Ozturk
2 Youssef Medi
3 Henry Tai

Beställningstabell

Id Kundnummer Belopp
1 2 123,50
2 3 14,80

Få alla kunder med minst en beställning

SELECT * FROM Customer WHERE EXISTS (
    SELECT * FROM Order WHERE Order.CustomerId=Customer.Id
)

Resultat

Id Förnamn Efternamn
2 Youssef Medi
3 Henry Tai

Få alla kunder utan beställning

SELECT * FROM Customer WHERE NOT EXISTS (
    SELECT * FROM Order WHERE Order.CustomerId = Customer.Id
)

Resultat

Id Förnamn Efternamn
1 Özgür Ozturk

Ändamål

EXISTS , IN och JOIN kan en gång användas för samma resultat, men de är inte lika:

  • EXISTS bör användas för att kontrollera om ett värde finns i en annan tabell
  • IN bör användas för statisk lista
  • JOIN ska användas för att hämta data från andra tabeller (er)


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow