SQL:n EXISTS-ehtoa käytetään tarkistamaan, onko korreloidun sisäkkäisen kyselyn tulos tyhjä (ei sisällä monikoita) vai ei. EXISTS:n tulos on looginen arvo True tai False. Sitä voidaan käyttää SELECT-, UPDATE-, INSERT- tai DELETE-käskyssä. Syntaksi:
SELECT column_name(s) FROM table_name WHERE EXISTS ( SELECT column_name(s) FROM table_name WHERE condition);>
Esimerkkejä: Harkitse seuraavia kahta suhdetta Asiakkaat ja tilaukset.
Kyselyt
- EXISTS-ehdon käyttö SELECT-käskyn kanssa. Haetaan vähintään yhden tilauksen tehneiden asiakkaiden etu- ja sukunimi.
SELECT fname, lname FROM Customers WHERE EXISTS (SELECT * FROM Orders WHERE Customers.customer_id = Orders.c_id);>
- Lähtö:
SELECT lname, fname FROM Customers WHERE NOT EXISTS (SELECT * FROM Orders WHERE Customers.customer_id = Orders.c_id);>
- Lähtö:
DELETE FROM Orders WHERE EXISTS (SELECT * FROM customers WHERE Customers.customer_id = Orders.c_id AND Customers.lname = 'Mehra');>
SELECT * FROM Orders;>
- Lähtö:
UPDATE Customers SET lname = 'Kumari' WHERE EXISTS (SELECT * FROM Customers WHERE customer_id = 401);>
SELECT * FROM Customers;>
- Lähtö: