vadnica-logo
X

MySQL SUBQUERY - Gnezdene poizvedbe

SUBQUERY ali gnezdena poizvedba je poizvedba znotraj druge poizvedbe. Uporablja se za izvajanje kompleksnejših operacij, kjer rezultat ene poizvedbe uporabimo kot pogoj v drugi poizvedbi. Osnovna sintaksa je:

SELECT stolpec
FROM tabela1
WHERE stolpec operator (SELECT stolpec FROM tabela2 WHERE pogoj);    

Pri uporabi SUBQUERY je pomembno vedeti:

  1. Podpoizvedba mora biti zaprta v oklepajih
  2. Podpoizvedba se izvede pred glavno poizvedbo
  3. Lahko uporabimo različne operatorje (=, >, <, IN, EXISTS, itd.)
  4. Podpoizvedba lahko vrne samo en stolpec (razen pri posebnih primerih)
  5. Podpoizvedbe lahko gnezdimo na več nivojih
PRIMER
REZULTAT
  1. Najprej ustvarimo tabelo "podjetje" s stolpci za ID, ime, oddelek in plačo.
    CREATE TABLE podjetje (
        id INT,
        ime VARCHAR(50),
        oddelek VARCHAR(50),
        placa DECIMAL(10, 2)
    );            
  2. Vstavimo podatke o petih zaposlenih z različnimi plačami in oddelki.
    INSERT INTO podjetje (id, ime, oddelek, placa) VALUES (1, 'Janez', 'Razvoj', 2500.99);
    INSERT INTO podjetje (id, ime, oddelek, placa) VALUES (2, 'Maja', 'Marketing', 2300.89);
    INSERT INTO podjetje (id, ime, oddelek, placa) VALUES (3, 'Peter', 'Razvoj', 2800.99);
    INSERT INTO podjetje (id, ime, oddelek, placa) VALUES (4, 'Ana', 'Finance', 2600.12);
    INSERT INTO podjetje (id, ime, oddelek, placa) VALUES (5, 'Tina', 'Marketing', 2400.54);            
  3. S pomočjo SELECT stavka prikažemo imena in plače vseh zaposlenih.
    SELECT ime,placa FROM podjetje;            
  4. Uporabimo podpoizvedbo za iskanje zaposlenih, ki imajo plačo višjo od povprečne. Podpoizvedba (SELECT AVG(placa) FROM podjetje) najprej izračuna povprečno plačo vseh zaposlenih, nato pa glavna poizvedba prikaže le tiste zaposlene, katerih plača presega to povprečje.
    SELECT ime, placa
    FROM podjetje
    WHERE placa > (SELECT AVG(placa) FROM podjetje);            
  5. Rezultat prikaže dva zaposlena: Peter iz oddelka Razvoj s plačo 2800.99 EUR in Ana iz oddelka Finance s plačo 2600.12 EUR, saj sta edina, ki imata plačo višjo od povprečne plače v podjetju.

Hvala za obisk! Dodajam politiko zasebnosti.

© 2024 Vse pravice pridržane.

Vam je koda pomagala? Če želite podpreti moj trud pri pripravi vodičev in vzdrževanju strani, mi lahko namenite donacijo za kavo.