Salta el contingut

Consultes avançades - JOIN amb DESIGUALTAT

Fins ara totes les comandes SELECT amb JOIN unien les files que tenien algun camp en comú.

També podem unir files de diferents columnes amb condicions que no siguin d’igualtat.

Exemple

Busquem el grau que correspon a cada salary a partir de la taula JOB_GRADES.

En aquest cas el SALARY de la taula EMPLOYEES ha d'estar comprès entre el LOWEST_SAL i l'HIGHEST_SAL de la taula JOB_GRADES.

El nostre JOIN inclourà aquesta restricció, que anomenem, de desigualtat. SALARY BETWEEN LOWEST_SAL AND HIGHEST_SAL.

desigualtat

Exemple
SELECT LAST_NAME, SALARY, GRADE_LEVEL
FROM EMPLOYEES E JOIN JOB_GRADES JG
     ON (E.SALARY BETWEEN JG.LOWEST_SAL AND JG.HIGHEST_SAL);
+-----------+----------+-------------+
| LAST_NAME | SALARY   | GRADE_LEVEL |
+-----------+----------+-------------+
| King      | 24000.00 | E           |
| Kochhar   | 17000.00 | E           |
| De Haan   | 17000.00 | E           |
| Hunold    |  9000.00 | C           |
| Ernst     |  6000.00 | C           |
| Lorentz   |  4200.00 | B           |
| Mourgos   |  5800.00 | B           |
| Rajs      |  3500.00 | B           |
| Davies    |  3100.00 | B           |
| Matos     |  2600.00 | A           |
| Vargas    |  2500.00 | A           |
| Zlotkey   | 10500.00 | D           |
| Abel      | 11000.00 | D           |
| Taylor    |  8600.00 | C           |
| Grant     |  7000.00 | C           |
| Whalen    |  4400.00 | B           |
| Hartstein | 13000.00 | D           |
| Fay       |  6000.00 | C           |
| Higgins   | 12000.00 | D           |
| Gietz     |  8300.00 | C           |
+-----------+----------+-------------+