1. Z bazy danych pobrać nazwy departamentów, w których nie pracuje ani jeden pracownik. Zasosować operator EXISTS.
INSERT INTO dept VALUES (51, 'Administracja', 2); SELECT D.id AS id, D.name AS nazwa FROM dept D WHERE NOT EXISTS (SELECT 1 FROM emp E WHERE E.dept_id=D.id LIMIT 1);
2. Z bazy danych pobrać następujące dane: nazwę departamentu, imię, nazwisko, wynagrodzenie pracownika/pracowników, którzy mają najwyższe wynagrodzenie w departamencie, w którym pracują. Dane posortować rosnąco wg nazw departamentów, nazwisk i imion pracowników.
SELECT E.first_name AS Imie, E.last_name AS Nazwisko, E.salary AS Wynagrodzenie, E.title AS Stanowisko, CONCAT(D.id, ' ' , D.name) AS Departament FROM emp E, dept D WHERE E.dept_id=D.id AND E.salary=(SELECT MAX(Ew.salary) FROM emp Ew WHERE Ew.dept_id=E.dept_id) ORDER BY D.id, E.last_name, E.first_name;
SELECT E.first_name AS Imie, E.last_name AS Nazwisko, E.salary AS Wynagrodzenie, E.title AS Stanowisko, CONCAT(D.id, ' ' , D.name) AS Departament
FROM emp E, dept D
WHERE E.dept_id=D.id AND E.salary=(SELECT MAX(Ew.salary) FROM emp Ew WHERE Ew.dept_id=E.dept_id)
ORDER BY D.id, E.last_name, E.first_name;
Dzięki, Shizer! 🙂