Pagina 1 di 1
[MySQL] Interrogazioni nidificate???
Inviato: sabato 19 aprile 2014, 19:33
da luciano9429
estrarre il dipartimento dell'impiegato che guadagna lo stipendio massimo.
Codice: Seleziona tutto
select Dipart
from Impiegato
where Stipendio >= all
(select Stipendio
from Impiegato)
si può scrivere anche cosi?
Re: [MySQL] Interrogazioni nidificate???
Inviato: domenica 20 aprile 2014, 0:37
da Zoff
Re: [MySQL] Interrogazioni nidificate???
Inviato: domenica 20 aprile 2014, 20:05
da luciano9429
Re: [MySQL] Interrogazioni nidificate???
Inviato: lunedì 21 aprile 2014, 22:45
da Zoff
Max è una funzione di raggruppamento, la clausola where richiede una condizione booleana
Re: [MySQL] Interrogazioni nidificate???
Inviato: martedì 22 aprile 2014, 13:56
da mx92
Potresti farla così:
Codice: Seleziona tutto
SELECT Dipertimento
FROM Impiegato inner join (
SELECT idImpiegato, Max(Stipendio)
FROM Impiegato
GROUP BY idImpiegato) as stipendioMax on impiegato.idImpiegato = stipendioMax.idImpiegato;
oppure se vuoi fare una cosa ordinata puoi creare una vista:
Codice: Seleziona tutto
CREATE VIEW stipendioMax AS
SELECT idImpiegato, Max(Stipendio)
FROM Impiegato
GROUP BY idImpiegato;
e poi dai
Codice: Seleziona tutto
SELECT Dipertimento
FROM Impiegato inner join stipendioMax on impiegato.idImpiegato = stipendioMax.idImpiegato;
Non ho modo di provarla ma dovrebbe andare bene
Re: [MySQL] Interrogazioni nidificate???
Inviato: martedì 22 aprile 2014, 14:01
da Zoff
Beh di modi ce ne sono mille.
Ad esempio:
Codice: Seleziona tutto
SELECT Dipartimento FROM Impiegato WHERE Stipendio IN SELECT MAX(Stipendio) FROM Impiegato
L'unico senza usare subquery è:
Codice: Seleziona tutto
SELECT Dipartimento FROM Impiegato ORDER BY Stipendio DESC LIMIT 1
L'unico difetto è che se piu' impiegati hanno lo stesso stipendio massimo ne prendi solo uno.
Re: [MySQL] Interrogazioni nidificate???
Inviato: martedì 22 aprile 2014, 14:19
da mx92
Con un inner join li prendi tutti
Re: [MySQL] Interrogazioni nidificate???
Inviato: martedì 22 aprile 2014, 14:24
da Zoff
Anche con la IN come ho indicato sopra.
Con ORDER e LIMIT sei enormemente più veloce